@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.
Files changed (74) hide show
  1. package/README.md +1 -0
  2. package/bundle/components/AlertProcess.md +6 -3
  3. package/bundle/components/AlertProcessSpoiler.md +216 -0
  4. package/bundle/components/Badge.md +4 -3
  5. package/bundle/components/ButtonDropdown.md +5 -3
  6. package/bundle/components/Carousel.md +671 -0
  7. package/bundle/components/CarouselExtended.md +7 -5
  8. package/bundle/components/CarouselIndicators.md +666 -0
  9. package/bundle/components/CarouselItem.md +579 -0
  10. package/bundle/components/CarouselNextButton.md +633 -0
  11. package/bundle/components/CarouselPrevButton.md +633 -0
  12. package/bundle/components/CarouselViewport.md +631 -0
  13. package/bundle/components/CheckboxTreeExtended.md +21 -7
  14. package/bundle/components/CheckboxTreeExtendedCheckbox.md +591 -0
  15. package/bundle/components/CheckboxTreeExtendedNode.md +577 -0
  16. package/bundle/components/Chip.md +1 -0
  17. package/bundle/components/ChipDatePicker.md +332 -0
  18. package/bundle/components/ChipDatePickerTarget.md +316 -0
  19. package/bundle/components/ChipMonthYearPicker.md +4 -3
  20. package/bundle/components/ChipMonthYearPickerTarget.md +318 -0
  21. package/bundle/components/ChipMultiselect.md +63 -73
  22. package/bundle/components/ChipSelect.md +385 -0
  23. package/bundle/components/ChipSelectTarget.md +388 -0
  24. package/bundle/components/ChipSuggest.md +10 -16
  25. package/bundle/components/ChipSuggestTarget.md +506 -0
  26. package/bundle/components/CollapsibleTree.md +2 -1
  27. package/bundle/components/CollapsibleTreeExtended.md +2 -1
  28. package/bundle/components/DateField.md +4 -2
  29. package/bundle/components/DatePickerExtended.md +16 -14
  30. package/bundle/components/DateRange.md +17 -10
  31. package/bundle/components/Dropdown.md +36 -63
  32. package/bundle/components/EmptyView.md +9 -4
  33. package/bundle/components/ExpandAnimation.md +9 -5
  34. package/bundle/components/FormField.md +1 -1
  35. package/bundle/components/ImageGallery.md +19 -52
  36. package/bundle/components/ImageGalleryExtended.md +123 -139
  37. package/bundle/components/ListItemControlsButtonDropdown.md +3 -2
  38. package/bundle/components/LoaderSmall.md +5 -4
  39. package/bundle/components/MonthYearRange.md +334 -0
  40. package/bundle/components/MultiselectField.md +81 -143
  41. package/bundle/components/Notification.md +2 -1
  42. package/bundle/components/NotificationGrouped.md +174 -0
  43. package/bundle/components/NumberField.md +259 -116
  44. package/bundle/components/OrderedList.md +149 -112
  45. package/bundle/components/Overlay.md +3 -2
  46. package/bundle/components/PageIndicators.md +306 -0
  47. package/bundle/components/Pagination.md +81 -3
  48. package/bundle/components/PaginationExtended.md +160 -0
  49. package/bundle/components/Portal.md +5 -2
  50. package/bundle/components/Puller.md +375 -0
  51. package/bundle/components/SMSField.md +277 -102
  52. package/bundle/components/SelectExtendedField.md +11 -7
  53. package/bundle/components/SelectField.md +7 -4
  54. package/bundle/components/SmartSpot.md +259 -0
  55. package/bundle/components/Step.md +2 -1
  56. package/bundle/components/Stepper.md +7 -7
  57. package/bundle/components/Suggest.md +7 -6
  58. package/bundle/components/SuggestField.md +8 -6
  59. package/bundle/components/TableBasic.md +12 -14
  60. package/bundle/components/Tooltip.md +9 -8
  61. package/bundle/guides/commits.md +4 -1
  62. package/bundle/guides/context.md +5 -5
  63. package/bundle/guides/stories.md +29 -21
  64. package/bundle/manifest.json +145 -13
  65. package/bundle/release-notes/1.50.0.mdx +4 -0
  66. package/bundle/release-notes/1.51.0.mdx +57 -0
  67. package/bundle/release-notes/1.52.0.mdx +55 -0
  68. package/bundle/release-notes/1.53.0.mdx +60 -0
  69. package/bundle/release-notes/1.54.0.mdx +45 -0
  70. package/bundle/release-notes/1.55.0.mdx +7 -0
  71. package/bundle/tokens.json +377 -222
  72. package/dist/index.js +39 -1
  73. package/dist/index.js.map +1 -1
  74. package/package.json +1 -1
@@ -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
- - В story-файле импорт компонента-примера делается через alias, чтобы избежать коллизии со story-экспортом: `Default as DefaultRender`, `Playground as PlaygroundRender`. Source без alias.
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 * from "./Default";
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 * from "./Sizes";
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`). Source-константа добавляет суффикс `Source` (`DefaultSource`). Из-за коллизии с именем story-экспорта в `*.stories.tsx` импорт компонента-примера делается через alias — см. ниже.
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 { Default as DefaultRender, DefaultSource } from "./examples";
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
- > **Alias обязателен.** Имя экспорта-функции (`Default`) совпадает с именем story-экспорта (`Default: StoryObj`), поэтому в импорте используется `Default as DefaultRender`. Source-константа конфликта не вызывает (`DefaultSource`), её импортируем без alias. То же относится к Playground (`Playground as PlaygroundRender`).
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 * from "./Default";
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 * from "./Sizes";
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'а
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "triplexVersion": "1.50.0",
4
- "generatedAt": "2026-10-09T17:30:26.195Z",
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": null,
130
- "ai_ready": false,
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": null,
564
- "ai_ready": false,
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-AI.md",
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-AI.md",
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-AI.md",
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` без изменений поведения.
@@ -0,0 +1,7 @@
1
+ import { Meta, Title, Heading } from "@storybook/addon-docs/blocks";
2
+
3
+ <Meta title="release-notes/v1/1.55.0" />
4
+
5
+ <Title>v1.55.0</Title>
6
+
7
+ <Heading>Изменения</Heading>