@sberbusiness/triplex-next-mcp-server 1.50.0-beta → 1.53.1
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 +1 -0
- package/bundle/components/AlertProcess.md +6 -3
- package/bundle/components/AlertProcessSpoiler.md +216 -0
- package/bundle/components/Badge.md +4 -3
- package/bundle/components/ButtonDropdown.md +5 -3
- package/bundle/components/Carousel.md +671 -0
- package/bundle/components/CarouselExtended.md +7 -5
- package/bundle/components/CarouselIndicators.md +666 -0
- package/bundle/components/CarouselItem.md +579 -0
- package/bundle/components/CarouselNextButton.md +633 -0
- package/bundle/components/CarouselPrevButton.md +633 -0
- package/bundle/components/CarouselViewport.md +631 -0
- package/bundle/components/CheckboxTreeExtended.md +21 -7
- package/bundle/components/CheckboxTreeExtendedCheckbox.md +591 -0
- package/bundle/components/CheckboxTreeExtendedNode.md +577 -0
- package/bundle/components/Chip.md +1 -0
- package/bundle/components/ChipDatePicker.md +332 -0
- package/bundle/components/ChipDatePickerTarget.md +316 -0
- package/bundle/components/ChipMonthYearPicker.md +4 -3
- package/bundle/components/ChipMonthYearPickerTarget.md +318 -0
- package/bundle/components/ChipMultiselect.md +63 -73
- package/bundle/components/ChipSelect.md +385 -0
- package/bundle/components/ChipSelectTarget.md +388 -0
- package/bundle/components/ChipSuggest.md +10 -16
- package/bundle/components/ChipSuggestTarget.md +506 -0
- package/bundle/components/CollapsibleTree.md +2 -1
- package/bundle/components/CollapsibleTreeExtended.md +2 -1
- package/bundle/components/DateField.md +4 -2
- package/bundle/components/DatePickerExtended.md +16 -14
- package/bundle/components/DateRange.md +17 -10
- package/bundle/components/Dropdown.md +36 -63
- package/bundle/components/EmptyView.md +9 -4
- package/bundle/components/ExpandAnimation.md +9 -5
- package/bundle/components/FormField.md +1 -1
- package/bundle/components/ImageGallery.md +19 -52
- package/bundle/components/ImageGalleryExtended.md +123 -139
- package/bundle/components/ListItemControlsButtonDropdown.md +3 -2
- package/bundle/components/LoaderSmall.md +5 -4
- package/bundle/components/MonthYearRange.md +334 -0
- package/bundle/components/MultiselectField.md +81 -143
- package/bundle/components/Notification.md +2 -1
- package/bundle/components/NotificationGrouped.md +174 -0
- package/bundle/components/NumberField.md +259 -116
- package/bundle/components/OrderedList.md +149 -112
- package/bundle/components/Overlay.md +3 -2
- package/bundle/components/PageIndicators.md +306 -0
- package/bundle/components/Pagination.md +81 -3
- package/bundle/components/PaginationExtended.md +160 -0
- package/bundle/components/Portal.md +5 -2
- package/bundle/components/Puller.md +375 -0
- package/bundle/components/SMSField.md +277 -102
- package/bundle/components/SelectExtendedField.md +11 -7
- package/bundle/components/SelectField.md +7 -4
- package/bundle/components/SmartSpot.md +259 -0
- package/bundle/components/Step.md +2 -1
- package/bundle/components/Stepper.md +7 -7
- package/bundle/components/Suggest.md +7 -6
- package/bundle/components/SuggestField.md +8 -6
- package/bundle/components/TableBasic.md +12 -14
- package/bundle/components/Tooltip.md +9 -8
- package/bundle/guides/commits.md +4 -1
- package/bundle/guides/context.md +5 -5
- package/bundle/guides/stories.md +29 -21
- package/bundle/manifest.json +145 -13
- package/bundle/release-notes/1.50.0.mdx +4 -0
- package/bundle/release-notes/1.51.0.mdx +57 -0
- package/bundle/release-notes/1.52.0.mdx +55 -0
- package/bundle/release-notes/1.53.0.mdx +60 -0
- package/bundle/release-notes/1.54.0.mdx +45 -0
- package/bundle/release-notes/1.55.0.mdx +7 -0
- package/bundle/tokens.json +377 -222
- package/dist/index.js +39 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/bundle/guides/stories.md
CHANGED
|
@@ -26,6 +26,15 @@ Stories выполняют несколько функций (в порядке
|
|
|
26
26
|
- Если задача маленькая и story-файл уже legacy, **не рефактори весь файл только ради миграции**. Сохраняй локальный паттерн и обновляй только нужный участок.
|
|
27
27
|
- Не переименовывай существующие story ids/export names без явной необходимости: на них могут опираться e2e и visual tests.
|
|
28
28
|
|
|
29
|
+
Готовность **Storybook examples** в ROADMAP оценивается по основным
|
|
30
|
+
документационным stories с копируемыми примерами. Дополнительный legacy-файл
|
|
31
|
+
для визуальной регрессии допустим, если основные примеры компонента
|
|
32
|
+
соответствуют modern pattern. Например, у `LightBox` основные примеры находятся
|
|
33
|
+
в `stories/LightBox/LightBox.stories.tsx` и `stories/LightBox/examples/`,
|
|
34
|
+
а `stories/LightBox/LightBoxInitialOpened.stories.tsx` сохраняет legacy pattern
|
|
35
|
+
для скриншот-тестов. Разрешение сохранять legacy pattern при мелкой правке
|
|
36
|
+
само по себе не подтверждает готовность основных примеров.
|
|
37
|
+
|
|
29
38
|
---
|
|
30
39
|
|
|
31
40
|
## Что обновлять при добавлении нового prop
|
|
@@ -96,7 +105,7 @@ stories/
|
|
|
96
105
|
- **Без постфикса `Example`** — не пиши `DefaultExample.tsx`, `SizesExample.tsx`. Если встретишь старые файлы с этим постфиксом, сохраняй локальный паттерн до миграции, но новые файлы создавай без него.
|
|
97
106
|
- Имя экспорта-функции внутри файла совпадает с именем файла: `export const Default = () => ...`.
|
|
98
107
|
- Source-константа: `{StoryName}Source` — `DefaultSource`, `SizesSource`, `PlaygroundSource`.
|
|
99
|
-
-
|
|
108
|
+
- `examples/index.ts` реэкспортирует пример с суффиксом `Render` (`Default as DefaultRender`), поэтому в story-файле импорт идёт без alias — см. «Файл `examples/index.ts`».
|
|
100
109
|
|
|
101
110
|
---
|
|
102
111
|
|
|
@@ -344,11 +353,11 @@ import { action } from "storybook/actions";
|
|
|
344
353
|
|
|
345
354
|
### Параметры Visual tests
|
|
346
355
|
|
|
347
|
-
Visual tests скрыта из документации и не показывает
|
|
356
|
+
Visual tests скрыта из документации (`"!autodocs"`) и сайдбара (`"!dev"`) и не показывает код: она нужна только для скриншот-тестов, test-runner её снимает:
|
|
348
357
|
|
|
349
358
|
```tsx
|
|
350
359
|
export const VisualTests: Story = {
|
|
351
|
-
tags: ["!autodocs"],
|
|
360
|
+
tags: ["!autodocs", "!dev"],
|
|
352
361
|
parameters: {
|
|
353
362
|
controls: { disable: true },
|
|
354
363
|
docs: {
|
|
@@ -368,7 +377,7 @@ export const VisualTests: Story = {
|
|
|
368
377
|
|
|
369
378
|
```tsx
|
|
370
379
|
export const VisualTests: Story = {
|
|
371
|
-
tags: ["!autodocs"],
|
|
380
|
+
tags: ["!autodocs", "!dev"],
|
|
372
381
|
parameters: {
|
|
373
382
|
controls: { disable: true },
|
|
374
383
|
docs: {
|
|
@@ -444,16 +453,20 @@ render: () => (
|
|
|
444
453
|
|
|
445
454
|
## Файл `examples/index.ts`
|
|
446
455
|
|
|
447
|
-
В modern pattern для каждого примера экспортируются два значения — сам компонент и его исходный
|
|
456
|
+
В modern pattern для каждого примера экспортируются два значения — сам компонент под именем `{StoryName}Render` и его исходный код под именем `{StoryName}Source`. Экспорты только явные, без `export *`:
|
|
448
457
|
|
|
449
458
|
```ts
|
|
450
|
-
export
|
|
459
|
+
export { Playground as PlaygroundRender, type IPlaygroundArgs } from "./Playground";
|
|
460
|
+
export { Default as DefaultRender } from "./Default";
|
|
451
461
|
export { default as DefaultSource } from "./Default?raw";
|
|
452
|
-
export
|
|
462
|
+
export { Sizes as SizesRender } from "./Sizes";
|
|
453
463
|
export { default as SizesSource } from "./Sizes?raw";
|
|
464
|
+
export { VisualTests as VisualTestsRender } from "./VisualTests";
|
|
454
465
|
```
|
|
455
466
|
|
|
456
|
-
> **Имена.** Файл и экспорт-функция называются как story (`Default.tsx` экспортирует `Default`).
|
|
467
|
+
> **Имена.** Файл и экспорт-функция называются как story (`Default.tsx` экспортирует `Default`). Суффикс `Render` нужен, потому что имя `Default` в `*.stories.tsx` занято story-экспортом. Типы экспортируются через `type`.
|
|
468
|
+
|
|
469
|
+
В существующих `index.ts` с `export *` при небольших правках сохраняй локальный паттерн; на явные экспорты переводи при переписывании stories.
|
|
457
470
|
|
|
458
471
|
---
|
|
459
472
|
|
|
@@ -462,7 +475,7 @@ export { default as SizesSource } from "./Sizes?raw";
|
|
|
462
475
|
В modern pattern каждая документационная стори подключает пример и его исходный код через `?raw`:
|
|
463
476
|
|
|
464
477
|
```tsx
|
|
465
|
-
import {
|
|
478
|
+
import { DefaultRender, DefaultSource } from "./examples";
|
|
466
479
|
|
|
467
480
|
export const Default: StoryObj<typeof Component> = {
|
|
468
481
|
render: DefaultRender,
|
|
@@ -478,7 +491,7 @@ export const Default: StoryObj<typeof Component> = {
|
|
|
478
491
|
};
|
|
479
492
|
```
|
|
480
493
|
|
|
481
|
-
>
|
|
494
|
+
> Суффикс `Render` добавлен в `examples/index.ts`, поэтому alias при импорте не нужен.
|
|
482
495
|
|
|
483
496
|
---
|
|
484
497
|
|
|
@@ -491,13 +504,7 @@ import React, { useState, useCallback } from "react";
|
|
|
491
504
|
import { Meta, StoryObj } from "@storybook/react";
|
|
492
505
|
import { Title, Description, Primary, Controls, Stories, ArgTypes, Heading } from "@storybook/addon-docs/blocks";
|
|
493
506
|
import { ComponentName, EComponentSize } from "@sberbusiness/triplex-next";
|
|
494
|
-
import {
|
|
495
|
-
Default as DefaultRender,
|
|
496
|
-
DefaultSource,
|
|
497
|
-
Playground as PlaygroundRender,
|
|
498
|
-
Sizes as SizesRender,
|
|
499
|
-
SizesSource,
|
|
500
|
-
} from "./examples";
|
|
507
|
+
import { DefaultRender, DefaultSource, PlaygroundRender, SizesRender, SizesSource } from "./examples";
|
|
501
508
|
|
|
502
509
|
const meta = {
|
|
503
510
|
title: "Components/Group/ComponentName",
|
|
@@ -633,9 +640,10 @@ export const Sizes = () => (
|
|
|
633
640
|
### `examples/index.ts`
|
|
634
641
|
|
|
635
642
|
```ts
|
|
636
|
-
export
|
|
643
|
+
export { Playground as PlaygroundRender } from "./Playground";
|
|
644
|
+
export { Default as DefaultRender } from "./Default";
|
|
637
645
|
export { default as DefaultSource } from "./Default?raw";
|
|
638
|
-
export
|
|
646
|
+
export { Sizes as SizesRender } from "./Sizes";
|
|
639
647
|
export { default as SizesSource } from "./Sizes?raw";
|
|
640
648
|
```
|
|
641
649
|
|
|
@@ -653,7 +661,7 @@ export { default as SizesSource } from "./Sizes?raw";
|
|
|
653
661
|
- [ ] Playground скрыт из autodocs (`tags: ["!autodocs"]`) — если есть
|
|
654
662
|
- [ ] Все документационные стори, кроме Playground, **не** имеют Controls (`controls: { disable: true }`)
|
|
655
663
|
- [ ] Все документационные стори, кроме Playground, показывают пример кода через `source.code`
|
|
656
|
-
- [ ] Все примеры вынесены в `examples/` и реэкспортированы через `index.ts`
|
|
664
|
+
- [ ] Все примеры вынесены в `examples/` и реэкспортированы через `index.ts` явными экспортами
|
|
657
665
|
- [ ] Default — минимальный пример с параметрами по умолчанию
|
|
658
666
|
- [ ] Стори с вариантами (Sizes, Statuses) — каждый вариант подписан рядом с компонентом
|
|
659
667
|
- [ ] Примеры самодостаточны (можно скопировать целиком)
|
|
@@ -670,7 +678,7 @@ export { default as SizesSource } from "./Sizes?raw";
|
|
|
670
678
|
- [ ] Нет дублирующих скриншотов — визуально идентичные стори исключены через `testRunner: { skip: true }`
|
|
671
679
|
- [ ] Все ключевые визуальные состояния покрыты (размеры, статусы, заполненные поля, фокус)
|
|
672
680
|
- [ ] Если основных сторей недостаточно — создана Visual tests с недостающими состояниями
|
|
673
|
-
- [ ] Visual tests скрыта из autodocs (`tags: ["!autodocs"]`) и не показывает код
|
|
681
|
+
- [ ] Visual tests скрыта из autodocs и сайдбара (`tags: ["!autodocs", "!dev"]`) и не показывает код
|
|
674
682
|
- [ ] Если компонент требует взаимодействия (dropdown, tooltip, modal, popover) — реализован `play` в Visual tests
|
|
675
683
|
- [ ] Данные в Visual tests захардкожены (нет `new Date()`, `Math.random()`)
|
|
676
684
|
- [ ] Контейнеры имеют фиксированные размеры для стабильного layout'а
|
package/bundle/manifest.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"triplexVersion": "1.
|
|
4
|
-
"generatedAt": "2026-
|
|
3
|
+
"triplexVersion": "1.54.0",
|
|
4
|
+
"generatedAt": "2026-11-06T17:58:45.272Z",
|
|
5
5
|
"components": [
|
|
6
6
|
{
|
|
7
7
|
"name": "AbstractTree",
|
|
@@ -33,6 +33,12 @@
|
|
|
33
33
|
"file": "components/AlertProcess.md",
|
|
34
34
|
"ai_ready": true
|
|
35
35
|
},
|
|
36
|
+
{
|
|
37
|
+
"name": "AlertProcessSpoiler",
|
|
38
|
+
"path": "src/components/Alert/AlertProcessSpoiler-ai.md",
|
|
39
|
+
"file": "components/AlertProcessSpoiler.md",
|
|
40
|
+
"ai_ready": true
|
|
41
|
+
},
|
|
36
42
|
{
|
|
37
43
|
"name": "Amount",
|
|
38
44
|
"path": "src/components/Amount/Amount-ai.md",
|
|
@@ -125,10 +131,9 @@
|
|
|
125
131
|
},
|
|
126
132
|
{
|
|
127
133
|
"name": "Carousel",
|
|
128
|
-
"path": "src/components/Carousel",
|
|
129
|
-
"file":
|
|
130
|
-
"ai_ready":
|
|
131
|
-
"storiesPath": "stories/Carousel/Carousel.stories.tsx"
|
|
134
|
+
"path": "src/components/Carousel/Carousel-ai.md",
|
|
135
|
+
"file": "components/Carousel.md",
|
|
136
|
+
"ai_ready": true
|
|
132
137
|
},
|
|
133
138
|
{
|
|
134
139
|
"name": "CarouselExtended",
|
|
@@ -136,6 +141,36 @@
|
|
|
136
141
|
"file": "components/CarouselExtended.md",
|
|
137
142
|
"ai_ready": true
|
|
138
143
|
},
|
|
144
|
+
{
|
|
145
|
+
"name": "CarouselIndicators",
|
|
146
|
+
"path": "src/components/Carousel/CarouselIndicators-ai.md",
|
|
147
|
+
"file": "components/CarouselIndicators.md",
|
|
148
|
+
"ai_ready": true
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"name": "CarouselItem",
|
|
152
|
+
"path": "src/components/Carousel/CarouselItem-ai.md",
|
|
153
|
+
"file": "components/CarouselItem.md",
|
|
154
|
+
"ai_ready": true
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"name": "CarouselNextButton",
|
|
158
|
+
"path": "src/components/Carousel/CarouselNextButton-ai.md",
|
|
159
|
+
"file": "components/CarouselNextButton.md",
|
|
160
|
+
"ai_ready": true
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"name": "CarouselPrevButton",
|
|
164
|
+
"path": "src/components/Carousel/CarouselPrevButton-ai.md",
|
|
165
|
+
"file": "components/CarouselPrevButton.md",
|
|
166
|
+
"ai_ready": true
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"name": "CarouselViewport",
|
|
170
|
+
"path": "src/components/Carousel/CarouselViewport-ai.md",
|
|
171
|
+
"file": "components/CarouselViewport.md",
|
|
172
|
+
"ai_ready": true
|
|
173
|
+
},
|
|
139
174
|
{
|
|
140
175
|
"name": "Checkbox",
|
|
141
176
|
"path": "src/components/Checkbox/Checkbox-ai.md",
|
|
@@ -154,6 +189,18 @@
|
|
|
154
189
|
"file": "components/CheckboxTreeExtended.md",
|
|
155
190
|
"ai_ready": true
|
|
156
191
|
},
|
|
192
|
+
{
|
|
193
|
+
"name": "CheckboxTreeExtendedCheckbox",
|
|
194
|
+
"path": "src/components/CheckboxTreeExtended/CheckboxTreeExtendedCheckbox-ai.md",
|
|
195
|
+
"file": "components/CheckboxTreeExtendedCheckbox.md",
|
|
196
|
+
"ai_ready": true
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"name": "CheckboxTreeExtendedNode",
|
|
200
|
+
"path": "src/components/CheckboxTreeExtended/CheckboxTreeExtendedNode-ai.md",
|
|
201
|
+
"file": "components/CheckboxTreeExtendedNode.md",
|
|
202
|
+
"ai_ready": true
|
|
203
|
+
},
|
|
157
204
|
{
|
|
158
205
|
"name": "CheckboxXGroup",
|
|
159
206
|
"path": "src/components/Checkbox/CheckboxXGroup-ai.md",
|
|
@@ -172,6 +219,18 @@
|
|
|
172
219
|
"file": "components/Chip.md",
|
|
173
220
|
"ai_ready": true
|
|
174
221
|
},
|
|
222
|
+
{
|
|
223
|
+
"name": "ChipDatePicker",
|
|
224
|
+
"path": "src/components/Chip/ChipDatePicker-ai.md",
|
|
225
|
+
"file": "components/ChipDatePicker.md",
|
|
226
|
+
"ai_ready": true
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"name": "ChipDatePickerTarget",
|
|
230
|
+
"path": "src/components/Chip/ChipDatePickerTarget-ai.md",
|
|
231
|
+
"file": "components/ChipDatePickerTarget.md",
|
|
232
|
+
"ai_ready": true
|
|
233
|
+
},
|
|
175
234
|
{
|
|
176
235
|
"name": "ChipGroup",
|
|
177
236
|
"path": "src/components/ChipGroup/ChipGroup-ai.md",
|
|
@@ -184,6 +243,12 @@
|
|
|
184
243
|
"file": "components/ChipMonthYearPicker.md",
|
|
185
244
|
"ai_ready": true
|
|
186
245
|
},
|
|
246
|
+
{
|
|
247
|
+
"name": "ChipMonthYearPickerTarget",
|
|
248
|
+
"path": "src/components/Chip/ChipMonthYearPickerTarget-ai.md",
|
|
249
|
+
"file": "components/ChipMonthYearPickerTarget.md",
|
|
250
|
+
"ai_ready": true
|
|
251
|
+
},
|
|
187
252
|
{
|
|
188
253
|
"name": "ChipMultiselect",
|
|
189
254
|
"path": "src/components/Chip/ChipMultiselect-ai.md",
|
|
@@ -196,6 +261,18 @@
|
|
|
196
261
|
"file": "components/ChipOptions.md",
|
|
197
262
|
"ai_ready": true
|
|
198
263
|
},
|
|
264
|
+
{
|
|
265
|
+
"name": "ChipSelect",
|
|
266
|
+
"path": "src/components/Chip/ChipSelect-ai.md",
|
|
267
|
+
"file": "components/ChipSelect.md",
|
|
268
|
+
"ai_ready": true
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
"name": "ChipSelectTarget",
|
|
272
|
+
"path": "src/components/Chip/ChipSelectTarget-ai.md",
|
|
273
|
+
"file": "components/ChipSelectTarget.md",
|
|
274
|
+
"ai_ready": true
|
|
275
|
+
},
|
|
199
276
|
{
|
|
200
277
|
"name": "ChipSort",
|
|
201
278
|
"path": "src/components/Chip/ChipSort-ai.md",
|
|
@@ -208,6 +285,12 @@
|
|
|
208
285
|
"file": "components/ChipSuggest.md",
|
|
209
286
|
"ai_ready": true
|
|
210
287
|
},
|
|
288
|
+
{
|
|
289
|
+
"name": "ChipSuggestTarget",
|
|
290
|
+
"path": "src/components/Chip/ChipSuggestTarget-ai.md",
|
|
291
|
+
"file": "components/ChipSuggestTarget.md",
|
|
292
|
+
"ai_ready": true
|
|
293
|
+
},
|
|
211
294
|
{
|
|
212
295
|
"name": "CodeText",
|
|
213
296
|
"path": "src/components/Typography/CodeText-ai.md",
|
|
@@ -559,10 +642,9 @@
|
|
|
559
642
|
},
|
|
560
643
|
{
|
|
561
644
|
"name": "MonthYearRange",
|
|
562
|
-
"path": "src/components/MonthYearRange",
|
|
563
|
-
"file":
|
|
564
|
-
"ai_ready":
|
|
565
|
-
"storiesPath": "stories/MonthYearRange/MonthYearRange.stories.tsx"
|
|
645
|
+
"path": "src/components/MonthYearRange/MonthYearRange-ai.md",
|
|
646
|
+
"file": "components/MonthYearRange.md",
|
|
647
|
+
"ai_ready": true
|
|
566
648
|
},
|
|
567
649
|
{
|
|
568
650
|
"name": "MultiselectField",
|
|
@@ -576,15 +658,21 @@
|
|
|
576
658
|
"file": "components/Notification.md",
|
|
577
659
|
"ai_ready": true
|
|
578
660
|
},
|
|
661
|
+
{
|
|
662
|
+
"name": "NotificationGrouped",
|
|
663
|
+
"path": "src/components/Notification/NotificationGrouped-ai.md",
|
|
664
|
+
"file": "components/NotificationGrouped.md",
|
|
665
|
+
"ai_ready": true
|
|
666
|
+
},
|
|
579
667
|
{
|
|
580
668
|
"name": "NumberField",
|
|
581
|
-
"path": "src/components/NumberField/NumberField-
|
|
669
|
+
"path": "src/components/NumberField/NumberField-ai.md",
|
|
582
670
|
"file": "components/NumberField.md",
|
|
583
671
|
"ai_ready": true
|
|
584
672
|
},
|
|
585
673
|
{
|
|
586
674
|
"name": "OrderedList",
|
|
587
|
-
"path": "src/components/OrderedList/OrderedList-
|
|
675
|
+
"path": "src/components/OrderedList/OrderedList-ai.md",
|
|
588
676
|
"file": "components/OrderedList.md",
|
|
589
677
|
"ai_ready": true
|
|
590
678
|
},
|
|
@@ -600,18 +688,36 @@
|
|
|
600
688
|
"file": "components/Page.md",
|
|
601
689
|
"ai_ready": true
|
|
602
690
|
},
|
|
691
|
+
{
|
|
692
|
+
"name": "PageIndicators",
|
|
693
|
+
"path": "src/components/PageIndicators/PageIndicators-ai.md",
|
|
694
|
+
"file": "components/PageIndicators.md",
|
|
695
|
+
"ai_ready": true
|
|
696
|
+
},
|
|
603
697
|
{
|
|
604
698
|
"name": "Pagination",
|
|
605
699
|
"path": "src/components/Pagination/Pagination-ai.md",
|
|
606
700
|
"file": "components/Pagination.md",
|
|
607
701
|
"ai_ready": true
|
|
608
702
|
},
|
|
703
|
+
{
|
|
704
|
+
"name": "PaginationExtended",
|
|
705
|
+
"path": "src/components/Pagination/PaginationExtended-ai.md",
|
|
706
|
+
"file": "components/PaginationExtended.md",
|
|
707
|
+
"ai_ready": true
|
|
708
|
+
},
|
|
609
709
|
{
|
|
610
710
|
"name": "Portal",
|
|
611
711
|
"path": "src/components/Portal/Portal-ai.md",
|
|
612
712
|
"file": "components/Portal.md",
|
|
613
713
|
"ai_ready": true
|
|
614
714
|
},
|
|
715
|
+
{
|
|
716
|
+
"name": "Puller",
|
|
717
|
+
"path": "src/components/Puller/Puller-ai.md",
|
|
718
|
+
"file": "components/Puller.md",
|
|
719
|
+
"ai_ready": true
|
|
720
|
+
},
|
|
615
721
|
{
|
|
616
722
|
"name": "Radio",
|
|
617
723
|
"path": "src/components/Radio/Radio-ai.md",
|
|
@@ -684,9 +790,15 @@
|
|
|
684
790
|
"file": "components/SmallInput.md",
|
|
685
791
|
"ai_ready": true
|
|
686
792
|
},
|
|
793
|
+
{
|
|
794
|
+
"name": "SmartSpot",
|
|
795
|
+
"path": "src/components/SmartSpot/SmartSpot-ai.md",
|
|
796
|
+
"file": "components/SmartSpot.md",
|
|
797
|
+
"ai_ready": true
|
|
798
|
+
},
|
|
687
799
|
{
|
|
688
800
|
"name": "SMSField",
|
|
689
|
-
"path": "src/components/SMSField/SMSField-
|
|
801
|
+
"path": "src/components/SMSField/SMSField-ai.md",
|
|
690
802
|
"file": "components/SMSField.md",
|
|
691
803
|
"ai_ready": true
|
|
692
804
|
},
|
|
@@ -1189,6 +1301,26 @@
|
|
|
1189
1301
|
"file": "release-notes/1.51.0.mdx",
|
|
1190
1302
|
"path": "stories/release-notes/v1/1.51.0.mdx"
|
|
1191
1303
|
},
|
|
1304
|
+
{
|
|
1305
|
+
"version": "1.52.0",
|
|
1306
|
+
"file": "release-notes/1.52.0.mdx",
|
|
1307
|
+
"path": "stories/release-notes/v1/1.52.0.mdx"
|
|
1308
|
+
},
|
|
1309
|
+
{
|
|
1310
|
+
"version": "1.53.0",
|
|
1311
|
+
"file": "release-notes/1.53.0.mdx",
|
|
1312
|
+
"path": "stories/release-notes/v1/1.53.0.mdx"
|
|
1313
|
+
},
|
|
1314
|
+
{
|
|
1315
|
+
"version": "1.54.0",
|
|
1316
|
+
"file": "release-notes/1.54.0.mdx",
|
|
1317
|
+
"path": "stories/release-notes/v1/1.54.0.mdx"
|
|
1318
|
+
},
|
|
1319
|
+
{
|
|
1320
|
+
"version": "1.55.0",
|
|
1321
|
+
"file": "release-notes/1.55.0.mdx",
|
|
1322
|
+
"path": "stories/release-notes/v1/1.55.0.mdx"
|
|
1323
|
+
},
|
|
1192
1324
|
{
|
|
1193
1325
|
"version": "1.6.0",
|
|
1194
1326
|
"file": "release-notes/1.6.0.mdx",
|
|
@@ -18,6 +18,10 @@ import { Meta, Title, Heading } from "@storybook/addon-docs/blocks";
|
|
|
18
18
|
|
|
19
19
|
- Добавлены горизонтальные отступы `12px` между соседними `ButtonDropdownExtended`, а также между `ButtonDropdownExtended` и `Button` в обоих порядках.
|
|
20
20
|
|
|
21
|
+
**PaginationNavigationExtended**
|
|
22
|
+
|
|
23
|
+
- Проведён AI-рефакторинг.
|
|
24
|
+
|
|
21
25
|
**Radio**
|
|
22
26
|
|
|
23
27
|
- Проведён AI-рефакторинг.
|
|
@@ -4,4 +4,61 @@ import { Meta, Title, Heading } from "@storybook/addon-docs/blocks";
|
|
|
4
4
|
|
|
5
5
|
<Title>v1.51.0</Title>
|
|
6
6
|
|
|
7
|
+
<Heading>Ломающие изменения</Heading>
|
|
8
|
+
|
|
9
|
+
**Carousel**
|
|
10
|
+
|
|
11
|
+
- Удалён enum `ECarouselOrientation`: используйте общий `EOrientation`, значения те же.
|
|
12
|
+
- Удалены токены `Carousel.Indicator_*`: индикаторы теперь красятся токенами `PageIndicators.Indicator_*` с теми же именами и значениями. Если вы переопределяли их через `ThemeProvider`, перенесите ключи в группу `PageIndicators`.
|
|
13
|
+
|
|
14
|
+
**ImageGallery**
|
|
15
|
+
|
|
16
|
+
- Свойство `showDots` переименовано в `showPageIndicators`, `dotsProps` — в `pageIndicatorsProps`, тип `TImageGalleryDotsProps` — в `TImageGalleryPageIndicatorsProps`.
|
|
17
|
+
|
|
18
|
+
**ImageGalleryExtended**
|
|
19
|
+
|
|
20
|
+
- Часть `ImageGalleryExtended.Dots` заменена на `ImageGalleryExtended.PageIndicators`, тип `IImageGalleryExtendedDotsProps` — на `IImageGalleryExtendedPageIndicatorsProps`. Замените `<ImageGalleryExtended.Dots />` на `<ImageGalleryExtended.PageIndicators />`.
|
|
21
|
+
- Изменено: вместо не более 4 тиков — индикатор на каждое изображение, видимо окно из 5. Ряд стал WAI-ARIA `tablist`: активный индикатор помечается `aria-selected="true"` вместо `aria-current`, стрелки, `Home` и `End` переключают изображение. Подписи индикаторов можно задать через `indicatorProps`.
|
|
22
|
+
- Изменено: отступ 16px между частями галереи теперь задаёт только лента миниатюр, индикаторы страниц прилегают к картинке вплотную. Своей разметке между частями задайте отступ самостоятельно.
|
|
23
|
+
- Удалены токены `ImageGallery.Dot_Background_*`: индикаторы красятся токенами `PageIndicators.Indicator_*`.
|
|
24
|
+
|
|
7
25
|
<Heading>Изменения</Heading>
|
|
26
|
+
|
|
27
|
+
**EmptyView**
|
|
28
|
+
|
|
29
|
+
- Проведён AI-рефакторинг.
|
|
30
|
+
|
|
31
|
+
**EOrientation**
|
|
32
|
+
|
|
33
|
+
- Добавлен общий enum ориентации `EOrientation` (`HORIZONTAL` / `VERTICAL`), его используют `Carousel` и `PageIndicators`.
|
|
34
|
+
|
|
35
|
+
**MonthYearRange**
|
|
36
|
+
|
|
37
|
+
- Проведён AI-рефакторинг.
|
|
38
|
+
|
|
39
|
+
**NotificationGrouped**
|
|
40
|
+
|
|
41
|
+
- Проведён AI-рефакторинг.
|
|
42
|
+
|
|
43
|
+
**NumberField**
|
|
44
|
+
|
|
45
|
+
- Добавлено: `NumberField` передаёт `ref` на корневой контейнер `FormField` (`HTMLDivElement`) и имеет `displayName="NumberField"`. Тип компонента изменился с `React.FC` на `React.ForwardRefExoticComponent`.
|
|
46
|
+
- Исправлено: каретка не смещается влево, когда при вводе удаляется символ правее неё. Например, при вводе цифры перед ведущим минусом каретка остаётся после введённой цифры.
|
|
47
|
+
|
|
48
|
+
**OrderedList**
|
|
49
|
+
|
|
50
|
+
- Изменено: внутренняя CSS-переменная начального номера переименована с `--start-index-tx` в `--triplex-next-runtime-OrderedList-Root_CounterReset` — она видна в inline-стиле корневого элемента.
|
|
51
|
+
- Проведён AI-рефакторинг: других изменений для потребителя нет.
|
|
52
|
+
|
|
53
|
+
**PageIndicators**
|
|
54
|
+
|
|
55
|
+
- Добавлен компонент `PageIndicators` — ряд индикаторов страниц с окном из 5 видимых индикаторов и навигацией с клавиатуры. Его используют `Carousel.Indicators` (без изменений для потребителя) и `ImageGalleryExtended.PageIndicators`.
|
|
56
|
+
|
|
57
|
+
**PaginationExtended**
|
|
58
|
+
|
|
59
|
+
- Проведён AI-рефакторинг.
|
|
60
|
+
|
|
61
|
+
**SMSField**
|
|
62
|
+
|
|
63
|
+
- Проведён AI-рефакторинг. `SMSField` и `SMSField.Submit` принимают `ref`: на корневой `div` и на `button` соответственно. Для ссылки на поле ввода по-прежнему передавайте `ref` в `SMSField.Input`.
|
|
64
|
+
- Исправлено: `onKeyDown` у `SMSField.Input` получал событие с `currentTarget` на обёртке поля, теперь — на `input`.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Meta, Title, Heading } from "@storybook/addon-docs/blocks";
|
|
2
|
+
|
|
3
|
+
<Meta title="release-notes/v1/1.52.0" />
|
|
4
|
+
|
|
5
|
+
<Title>v1.52.0</Title>
|
|
6
|
+
|
|
7
|
+
<Heading>Ломающие изменения</Heading>
|
|
8
|
+
|
|
9
|
+
**DateRange, MonthYearRange**
|
|
10
|
+
|
|
11
|
+
- Поля в `renderPickerFrom` / `renderPickerTo` получают `format` диапазона. Если вы задавали `format` полю до spread (`<DateField format="..." {...props} />`), он перезапишется на `YYYYMMDD`: перенесите `format` на `DateRange` / `MonthYearRange`.
|
|
12
|
+
|
|
13
|
+
<Heading>Изменения</Heading>
|
|
14
|
+
|
|
15
|
+
**Carousel**
|
|
16
|
+
|
|
17
|
+
- Исправлено: в режиме `ECarouselScrollMode.PAGE` страницы формировались и центрировались без учёта `viewportPadding`, из-за чего крайний слайд страницы мог обрезаться.
|
|
18
|
+
- Проведён AI-рефакторинг.
|
|
19
|
+
|
|
20
|
+
**CarouselItem**
|
|
21
|
+
|
|
22
|
+
- Проведён AI-рефакторинг.
|
|
23
|
+
|
|
24
|
+
**ChipDatePicker**
|
|
25
|
+
|
|
26
|
+
- Добавлен файл `ChipDatePicker-ai.md` с AI-документацией компонента.
|
|
27
|
+
|
|
28
|
+
**ChipDatePickerTarget**
|
|
29
|
+
|
|
30
|
+
- Добавлен файл `ChipDatePickerTarget-ai.md` с AI-документацией компонента.
|
|
31
|
+
- Проведён AI-рефакторинг.
|
|
32
|
+
|
|
33
|
+
**ChipMonthYearPickerTarget**
|
|
34
|
+
|
|
35
|
+
- Добавлен файл `ChipMonthYearPickerTarget-ai.md` с AI-документацией компонента.
|
|
36
|
+
- Проведён AI-рефакторинг.
|
|
37
|
+
|
|
38
|
+
**ChipSelect**
|
|
39
|
+
|
|
40
|
+
- Добавлен файл `ChipSelect-ai.md` с AI-документацией компонента.
|
|
41
|
+
|
|
42
|
+
**DateRange**
|
|
43
|
+
|
|
44
|
+
- Добавлено свойство `format` — формат дат в `value` и `onChange`, по умолчанию `YYYYMMDD`.
|
|
45
|
+
- Исправлено: с форматом вроде `DD.MM.YYYY` дата «до» ошибочно сбрасывалась — например, при вводе 31.01.2024 в «от» при «до» 01.02.2024. Теперь даты сравниваются хронологически в формате `format`.
|
|
46
|
+
- Исправлено: сдвиг диапазона с невалидной границей передавал в `onChange` неверную дату (например, `"31.01.2024"` превращалась в `"20310220"`). Теперь такой диапазон не сдвигается.
|
|
47
|
+
|
|
48
|
+
**LightBox**
|
|
49
|
+
|
|
50
|
+
- Исправлен баг появления второго скролла во время открытия/закрытия SideOverlay и сдвига Lightbox/SideOverlay при открытии SideOverlay и TopOverlay на Windows.
|
|
51
|
+
|
|
52
|
+
**MonthYearRange**
|
|
53
|
+
|
|
54
|
+
- Добавлено свойство `format` — формат дат в `value` и `onChange`, по умолчанию `YYYYMMDD`.
|
|
55
|
+
- Исправлено: с форматом вроде `DD.MM.YYYY` противоположная граница ошибочно сбрасывалась. Теперь даты сравниваются хронологически в формате `format`.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Meta, Title, Heading } from "@storybook/addon-docs/blocks";
|
|
2
|
+
|
|
3
|
+
<Meta title="release-notes/v1/1.53.0" />
|
|
4
|
+
|
|
5
|
+
<Title>v1.53.0</Title>
|
|
6
|
+
|
|
7
|
+
<Heading>Новые компоненты</Heading>
|
|
8
|
+
|
|
9
|
+
**Puller**
|
|
10
|
+
|
|
11
|
+
- Нижняя шторка для экранов любой ширины, бывший `DropdownMobile`. Из пакета также экспортируется `PullerMaskedInput`.
|
|
12
|
+
- В `Portal` себя не выносит: при прямом использовании оберните в `<Portal container={document.body}>`. В `pullerProps` у `Dropdown` это не нужно.
|
|
13
|
+
- Отличия от `DropdownMobile`:
|
|
14
|
+
- блокировка скролла страницы не снимается, пока открыта другая шторка;
|
|
15
|
+
- `PullerListItem` передаёт `id` в DOM-элемент;
|
|
16
|
+
- лоадер `PullerList` больше не считается вариантом списка: он скрыт от скринридеров, загрузку передаёт `aria-busy`.
|
|
17
|
+
|
|
18
|
+
**SmartSpot**
|
|
19
|
+
|
|
20
|
+
- Компонент-анимированная подложка статуса. Состоит из размытых пятна на прозрачном фоне в цветах статуса с пресетами анимации Drift, Breathing и None.
|
|
21
|
+
|
|
22
|
+
<Heading>Ломающие изменения</Heading>
|
|
23
|
+
|
|
24
|
+
**ChipSuggest / Dropdown / MultiselectField.Dropdown / SelectExtendedField.Dropdown / Suggest**
|
|
25
|
+
|
|
26
|
+
- Prop `mobileViewProps` переименован в `pullerProps` (тип `Omit<IPullerProps, "opened" | "setOpened">`), поведение прежнее. Переименование распространяется на props, унаследованные от `IDropdownProps`: `IMultiselectFieldDropdownProps`, `ISelectExtendedFieldDropdownProps`, `ISuggestDropdownProps`, `dropdownProps` у `ChipSuggest`.
|
|
27
|
+
- CSS-класс блокировки скролла на `body` у десктопного меню переименован: `.dropdownDesktopOverflowHidden` → `.dropdownDesktopScrollLock`.
|
|
28
|
+
|
|
29
|
+
**Puller**
|
|
30
|
+
|
|
31
|
+
- Компоненты и типы `DropdownMobile*` удалены без алиасов. Замена:
|
|
32
|
+
- `DropdownMobile` → `Puller`, `DropdownMobileHeader` → `PullerHeader`, `DropdownMobileBody` → `PullerBody`, `DropdownMobileFooter` → `PullerFooter`, `DropdownMobileClose` → `PullerClose`, `DropdownMobileLoader` → `PullerLoader`, `DropdownMobileInput` → `PullerInput`, `DropdownMobileMaskedInput` → `PullerMaskedInput`, `DropdownMobileList` → `PullerList`, `DropdownMobileListItem` → `PullerListItem`;
|
|
33
|
+
- типы `IDropdownMobile*Props` → `IPuller*Props`, `IDropownMobileLoaderProps` → `IPullerLoaderProps`;
|
|
34
|
+
- `DropdownMobileInner` — без замены, используйте `Puller`;
|
|
35
|
+
- `IDropdownMobileHeaderProps` перенесён из `components/Tooltip/types` в `components/Puller/PullerHeader` под именем `IPullerHeaderProps`;
|
|
36
|
+
- deep-импорты `components/Dropdown/mobile/DropdownMobile*` нужно заменить на `components/Puller/Puller*`.
|
|
37
|
+
- Группы дизайн-токенов `DropdownMobile` и `DropdownMobileList` переименованы в `Puller` и `PullerList`, ключ `DropdownMobile.Content_Background` — в `Puller.Body_Background`.
|
|
38
|
+
- CSS-классы `.dropdownMobile*` переименованы в `.puller*`, кроме `.dropdownMobileContent` → `.pullerBody`, `.dropdownMobileBodyOverflow` → `.pullerScrollLock` и `.controlButtons` → `.pullerHeaderControls`. Модификатор `.closing` удалён.
|
|
39
|
+
|
|
40
|
+
<Heading>Изменения</Heading>
|
|
41
|
+
|
|
42
|
+
**CarouselNextButton**
|
|
43
|
+
|
|
44
|
+
- Проведён AI-рефакторинг.
|
|
45
|
+
|
|
46
|
+
**CarouselPrevButton**
|
|
47
|
+
|
|
48
|
+
- Проведён AI-рефакторинг.
|
|
49
|
+
|
|
50
|
+
**CarouselViewport**
|
|
51
|
+
|
|
52
|
+
- Проведён AI-рефакторинг.
|
|
53
|
+
- Исправлено: если `Carousel` перерисовывался во время свайпа (например, после изменения размеров), переход выполнялся по состоянию на начало жеста.
|
|
54
|
+
- Исправлено: `onTouchStart` не вызывался, если в событии не было `targetTouches`.
|
|
55
|
+
- Изменено: до выбора направления жеста (первые 5 px) лента не сдвигается и не блокирует прокрутку страницы.
|
|
56
|
+
- Исправлено: касание карусели во время анимации перехода обрывало анимацию, и лента сразу оказывалась в конечной позиции.
|
|
57
|
+
|
|
58
|
+
**Dropdown**
|
|
59
|
+
|
|
60
|
+
- Исправлено: закрытие одного из открытых десктопных меню снимало блокировку скролла страницы, хотя другое меню оставалось открытым.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Meta, Title, Heading } from "@storybook/addon-docs/blocks";
|
|
2
|
+
|
|
3
|
+
<Meta title="release-notes/v1/1.54.0" />
|
|
4
|
+
|
|
5
|
+
<Title>v1.54.0</Title>
|
|
6
|
+
|
|
7
|
+
<Heading>Ломающие изменения</Heading>
|
|
8
|
+
|
|
9
|
+
**Puller**
|
|
10
|
+
|
|
11
|
+
- `Puller` сам рендерится через `Portal`, по умолчанию в `document.body`. Что проверить:
|
|
12
|
+
- обёртку `<Portal container={document.body}>` можно убрать;
|
|
13
|
+
- если шторка обёрнута в `Portal` с другим контейнером, передайте этот контейнер в новый prop `renderContainer`;
|
|
14
|
+
- если шторка рендерилась без `Portal`:
|
|
15
|
+
- внутри элемента с классом темы — передайте этот элемент в `renderContainer`;
|
|
16
|
+
- нативные проверки вида `parent.contains(event.target)` (например, свой обработчик клика снаружи) считают клик по шторке внешним;
|
|
17
|
+
- CSS-селекторы, завязанные на родителя (вида `.my-container .pullerWrapper`), к ней не применяются.
|
|
18
|
+
|
|
19
|
+
<Heading>Изменения</Heading>
|
|
20
|
+
|
|
21
|
+
**ChipSelect / ChipSelectTarget**
|
|
22
|
+
|
|
23
|
+
- Проведён AI-рефакторинг `ChipSelectTarget`.
|
|
24
|
+
- Исправлено: при `disabled` и выбранном значении кнопка очистки оставалась доступной с клавиатуры и сбрасывала значение.
|
|
25
|
+
|
|
26
|
+
**ChipSuggest / ChipSuggestTarget**
|
|
27
|
+
|
|
28
|
+
- Проведён AI-рефакторинг `ChipSuggestTarget`, добавлен `displayName`.
|
|
29
|
+
- Исправлено: `onKeyDown` (в том числе `ChipSuggest.targetProps.onKeyDown`) вызывался только для Enter / Space, остальные клавиши до обработчика не доходили.
|
|
30
|
+
- Исправлено: при `disabled` и выбранном значении кнопка очистки оставалась доступной с клавиатуры и сбрасывала значение.
|
|
31
|
+
|
|
32
|
+
**Dropdown / MultiselectField.Dropdown / SelectExtendedField.Dropdown**
|
|
33
|
+
|
|
34
|
+
- Добавлено: мобильную версию можно отрендерить в свой контейнер через `pullerProps.renderContainer`.
|
|
35
|
+
|
|
36
|
+
**MultiselectField / SelectExtendedField.Target / SelectField**
|
|
37
|
+
|
|
38
|
+
- Исправлено: Enter / Space на кнопке очистки, `HelpBox`, кнопках тегов в значении и других фокусируемых элементах внутри поля открывали выпадающий блок вместо нажатия на элемент. `stopPropagation` в `onKeyDown` тегов `MultiselectField` для этого больше не нужен.
|
|
39
|
+
- Исправлено: клик по `HelpBox`, кнопкам тегов в значении и другим фокусируемым элементам внутри поля, а также события из их Tooltip переключали выпадающий блок.
|
|
40
|
+
- Изменено: `ArrowDown` / `ArrowUp` открывают выпадающий блок, только когда фокус на самом поле, а не на вложенном элементе.
|
|
41
|
+
- Изменено: `onClear` получает событие клика (`React.MouseEventHandler<HTMLButtonElement>`).
|
|
42
|
+
|
|
43
|
+
**Tooltip**
|
|
44
|
+
|
|
45
|
+
- Рефакторинг `TooltipMobile` без изменений поведения.
|