@sberbusiness/triplex-next-mcp-server 1.48.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/bundle/components/Amount.md +2 -1
- 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/CheckboxXGroup.md +2 -1
- package/bundle/components/Chip.md +2 -1
- package/bundle/components/ChipMonthYearPicker.md +2 -1
- package/bundle/components/ChipMultiselect.md +4 -1
- package/bundle/components/ChipOptions.md +2 -1
- package/bundle/components/ChipSort.md +4 -1
- package/bundle/components/CollapsibleTree.md +2 -1
- package/bundle/components/ComposedKeyDownListener.md +4 -3
- package/bundle/components/DateField.md +7 -1
- 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 +3 -1
- package/bundle/components/FormField.md +2 -1
- 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 +7 -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/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 +4 -1
- 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 +4 -1
- 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/Spoiler.md +245 -63
- package/bundle/components/Step.md +257 -68
- package/bundle/components/SuggestField.md +30 -18
- package/bundle/components/Tabs.md +2 -1
- package/bundle/components/TabsLine.md +2 -1
- package/bundle/components/TextField.md +8 -4
- package/bundle/components/TextareaField.md +2 -1
- package/bundle/components/ThemeProvider.md +2 -1
- package/bundle/components/Tooltip.md +6 -3
- package/bundle/guides/context.md +4 -1
- package/bundle/manifest.json +32 -10
- package/bundle/release-notes/1.49.0.mdx +78 -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 +161 -11
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
component: Amount
|
|
3
3
|
category: Amount
|
|
4
|
-
related: [AmountField
|
|
4
|
+
related: [AmountField]
|
|
5
5
|
tokens: []
|
|
6
6
|
stories: stories/Amount/Amount.stories.tsx
|
|
7
7
|
version: "1.0"
|
|
@@ -184,6 +184,7 @@ version: "1.0"
|
|
|
184
184
|
| Дата | Изменение |
|
|
185
185
|
|---|---|
|
|
186
186
|
| 2026-08-12 | Создан документ. AI-рефакторинг: `Amount` переведён с `React.FC` на `forwardRef` — ref указывает на корневой `<span>`, то есть на тот же элемент, что получает `className` и `...rest` (аддитивное изменение, `IAmountProps` не менялся). Порядок импортов приведён к codestyle, константа `adaptiveAmountLength` переименована в `ADAPTIVE_AMOUNT_LENGTH`, магические символы вынесены в именованные константы `HYPHEN_MINUS` / `MINUS_SIGN` / `NON_BREAKING_SPACE`, нестрогое сравнение `==` заменено на `startsWith`, `let` заменён на `const`, inline-функция `renderCurrencyName` (возвращала массив React-узлов) заменена на фрагмент прямо в JSX, JSDoc props дополнен значениями по умолчанию, `!important` в `.adaptive` получил комментарий-обоснование. Unit-тесты расширены с 4 до 23 кейсов. Публичный API, DOM-разметка и визуальное отображение не изменены. |
|
|
187
|
+
| 2026-09-29 | Аудит симметрии `related` (TRI-156): из `related` убраны имена без строки в `docs/ai/ROADMAP.md` (`StatusTrackerSum`, `TableFooterSummaryAmount`); из `related` убраны несимметричные имена (`Text`). Пояснения к убранным именам сохранены прозой в «Связанные компоненты»; публичный API и поведение не затронуты. |
|
|
187
188
|
|
|
188
189
|
---
|
|
189
190
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
component: Badge
|
|
3
3
|
category: Badge
|
|
4
|
-
related: [Marker
|
|
4
|
+
related: [Marker]
|
|
5
5
|
tokens:
|
|
6
6
|
- Badge.Background
|
|
7
7
|
stories: stories/Badge/Badge.stories.tsx
|
|
@@ -214,6 +214,7 @@ Badge.Background
|
|
|
214
214
|
| Дата | Изменение |
|
|
215
215
|
|---|---|
|
|
216
216
|
| 2026-08-12 | Создан документ. AI-рефакторинг: JSDoc на всех props `IBadgeProps` / `IBadgeDotProps` / `IBadgeContentProps` с указанием размеров в px, в `IBadgeProps` добавлен явный `children` (тип совпадает с унаследованным из `React.HTMLAttributes`), расширены JSDoc компонентов и внутренних обёрток. Unit-тесты расширены с 12 до 45 кейсов: `Badge.test.tsx` вырос с 12 до 23 кейсов, рядом добавлены `BadgeDot.test.tsx` (7), `BadgeContent.test.tsx` (9) и `BadgeAffixes.test.tsx` (6) — покрыты логика снятия отступов контента, нерендеринг частей с falsy-значением, порядок частей разметки, проброс `...rest` и `ref`. Публичный API, DOM-разметка и визуальное поведение не изменены. |
|
|
217
|
+
| 2026-09-29 | Аудит симметрии `related` (TRI-156): из `related` убраны имена без строки в `docs/ai/ROADMAP.md` (`DropdownListItem`, `DropdownMobileListItem`, `TabsLineItem`, `TabsExtendedTabButton`); из `related` убраны несимметричные имена (`Text`, `Caption`) и потребитель `Chip` — он рендерит `Badge.Dot`, ссылка стоит с его стороны. Пояснения к убранным именам сохранены прозой в «Связанные компоненты»; публичный API и поведение не затронуты. |
|
|
217
218
|
|
|
218
219
|
---
|
|
219
220
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
component: BodyPage
|
|
3
3
|
category: Page
|
|
4
|
-
related: [Page, HeaderPage, FooterPage, Body, Island
|
|
4
|
+
related: [Page, HeaderPage, FooterPage, Body, Island]
|
|
5
5
|
tokens: []
|
|
6
6
|
stories: stories/Page/BodyPage/BodyPage.stories.tsx
|
|
7
7
|
version: "1.0"
|
|
@@ -134,6 +134,7 @@ type TBodyPageVerticalMargin = EBodyPageVerticalMargin | IBodyPageVerticalMargin
|
|
|
134
134
|
|---|---|
|
|
135
135
|
| 2026-06-18 | Создан документ. AI-рефакторинг (clsx order, JSDoc), unit-тесты, миграция stories на modern pattern. |
|
|
136
136
|
| 2026-08-26 | TRI-121: добавлено `EBodyPageVerticalMargin.NONE`; `verticalMargin` принимает объект `{top, bottom}` (обе стороны обязательны) для независимых отступов сверху и снизу. LESS переразбит на односторонние классы. |
|
|
137
|
+
| 2026-09-29 | Аудит симметрии `related` (TRI-156): из `related` убраны несимметричные имена (`LightBox`). Пояснения к убранным именам сохранены прозой в «Связанные компоненты»; публичный API и поведение не затронуты. |
|
|
137
138
|
|
|
138
139
|
---
|
|
139
140
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
component: Button
|
|
3
3
|
category: Buttons
|
|
4
|
-
related: [ButtonIcon, ButtonDropdown, ButtonDropdownExtended]
|
|
4
|
+
related: [ButtonIcon, ButtonDropdown, ButtonDropdownExtended, LoaderSmall]
|
|
5
5
|
tokens:
|
|
6
6
|
- Button.General_Background_Default
|
|
7
7
|
- Button.General_Color_Default
|
|
@@ -160,6 +160,7 @@ version: "1.0"
|
|
|
160
160
|
- `ButtonDropdownExtended` — контейнер для кастомного dropdown с render-функциями
|
|
161
161
|
- `Loader` (`src/components/Loader`) — используется внутри Button для состояния загрузки
|
|
162
162
|
- `Dropdown` (`src/components/Dropdown`) — используется внутри ButtonDropdown
|
|
163
|
+
- `LoaderSmall` (`src/components/Loader`) — индикатор загрузки; `Button` рендерит его всегда и вне `loading` прячет обёртку классом
|
|
163
164
|
|
|
164
165
|
---
|
|
165
166
|
|
|
@@ -186,12 +187,15 @@ version: "1.0"
|
|
|
186
187
|
|
|
187
188
|
| Дата | Изменение |
|
|
188
189
|
|---|---|
|
|
190
|
+
| 2026-10-01 | В правило отступа между соседями (`& + .button, & + .buttonDropdown`) добавлен `& + .buttonDropdownExtended`: `ButtonDropdownExtended` после `Button` получает `@button-siblings-margin-left`. Обратный порядок описан в `ButtonDropdownExtended.module.less`. |
|
|
189
191
|
| 2026-03-31 | Создан документ (пилот AI-Ready) |
|
|
190
192
|
| 2026-04-27 | Приведён в соответствие с `docs/ai/template-ai.md`: убраны секции «Файловая структура» и «Ключевые особенности реализации», переструктурированы props, добавлена колонка `Example file` в таблице Stories |
|
|
191
193
|
| 2026-07-15 | Добавлен `vertical-align: middle` корневому классу `.button` — icon-only кнопка (`icon` без `children`) смещалась по вертикали относительно соседней текстовой кнопки из-за baseline-выравнивания inline-элементов; `middle` также центрирует кнопку относительно строки инлайн-текста |
|
|
192
194
|
| 2026-07-28 | AI-рефакторинг (TRI-13): codestyle-чистка `Button.tsx` (JSDoc компонента, поясняющие комментарии, эквивалентные упрощения в `clsx`), unit-тесты расширены с 10 до 24 кейсов; публичный API и поведение не изменены |
|
|
193
195
|
| 2026-07-28 | Правки по ревью PR #481 (TRI-13): исправлена трактовка строкового `aria-expanded="false"` (больше не считается раскрытым состоянием); `size` стал опциональным с default `EComponentSize.MD` (типы приведены в соответствие с реализацией); `ButtonBase` убран из barrel-экспорта `index.ts` — импорт только по прямому пути `components/Button/ButtonBase` |
|
|
194
196
|
| 2026-08-17 | Добавлен `justify-content: center` корневому классу `.button` — при коротком тексте кнопка растягивается до `min-width`, и содержимое прижималось к левому краю вместо центра |
|
|
197
|
+
| 2026-09-24 | Исправлен баг: иконка не перекрашивалась при наведении на паддинг кнопки (вне тесной обёртки icon+текст), т.к. классы `hoverable`/`active`/`disabled` пакета `@sberbusiness/icons-next` стояли на внутренней `.content`-обёртке вместо корневого `<button>`. Классы возвращены на `<button>` напрямую (без `IconWrapper` — по аналогии с `CollapsibleTreeNodeHeader`, см. `IconWrapper-ai.md` → «Связанные компоненты»): промежуточный вариант через `IconWrapper displayContents` ломал sibling-селектор `.button + .button` (отступ между соседними кнопками, `Button.module.less`) и DOM-контракт у потребителей, полагающихся на `Button` как на буквальный корневой `<button>`. Публичный API не изменён |
|
|
198
|
+
| 2026-09-29 | Аудит симметрии `related` (TRI-156): добавлен контракт по рендеру `LoaderSmall` — `Button` рендерит его всегда. `IconWrapper` в `related` не добавлен: `Button` его не использует, классы состояний стоят на корневом `<button>` напрямую (см. запись от 2026-09-24 и `IconWrapper-ai.md`). Публичный API и поведение не затронуты. |
|
|
195
199
|
|
|
196
200
|
---
|
|
197
201
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
component: ButtonDropdownExtended
|
|
3
3
|
category: Buttons
|
|
4
|
-
related: [ButtonDropdown, Button, Dropdown
|
|
4
|
+
related: [ButtonDropdown, Button, Dropdown]
|
|
5
5
|
tokens: []
|
|
6
6
|
stories: stories/Buttons/ButtonDropdownExtended.stories.tsx
|
|
7
7
|
version: "1.0"
|
|
@@ -115,8 +115,10 @@ version: "1.0"
|
|
|
115
115
|
|
|
116
116
|
| Дата | Изменение |
|
|
117
117
|
|---|---|
|
|
118
|
+
| 2026-10-01 | Горизонтальный отступ `@button-siblings-margin-left` (12px) между соседними `ButtonDropdownExtended` и между `ButtonDropdownExtended` и `Button` в обоих порядках (`.buttonDropdownExtended + .button`, `+ .buttonDropdownExtended` здесь и `.button + .buttonDropdownExtended` в `Button.module.less`). У `ButtonDropdown` отступ работал и раньше: его корень — тот же `ButtonDropdownExtended`. Классы из соседнего модуля папки `Button` ссылаются по локальному имени: `generateScopedName` хеширует по папке и имени класса. |
|
|
118
119
|
| 2026-08-31 | Компонент переведён с `React.FC` на `Object.assign(forwardRef(...), {...})` — теперь пробрасывает `ref` на корневой `<div>`, форвард мерджится с внутренним `containerRef`. Базовый тип `IButtonDropdownExtendedComponent` изменился с `React.FC` на `React.ForwardRefExoticComponent`; набор props, статики и DOM не изменились. Понадобилось для `TableBasicSettings`, который рендерит `ButtonDropdownExtended` корнем. |
|
|
119
120
|
| 2026-07-29 | Создан документ AI-ready для `ButtonDropdownExtended`. AI-рефакторинг без изменения публичного API: режим управления переведён с ref на `useState` (устранены ошибки `react-hooks/refs`), убраны вырожденный тернарник в `useState` и мёртвые проверки `opened` внутри обработчиков, `setOpened && setOpened(...)` заменён на опциональный вызов, добавлены JSDoc. Добавлены unit-тесты и stories по modern pattern. |
|
|
121
|
+
| 2026-09-29 | Аудит симметрии `related` (TRI-156): из `related` убраны имена без строки в `docs/ai/ROADMAP.md` (`DropdownList`). Пояснения к убранным именам сохранены прозой в «Связанные компоненты»; публичный API и поведение не затронуты. |
|
|
120
122
|
|
|
121
123
|
---
|
|
122
124
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
component: ButtonIcon
|
|
3
3
|
category: Buttons
|
|
4
|
-
related: [Button]
|
|
4
|
+
related: [Button, IconWrapper]
|
|
5
5
|
tokens:
|
|
6
6
|
- Button.Icon_Shadow_Focus
|
|
7
7
|
stories: stories/Buttons/ButtonIcon.stories.tsx
|
|
@@ -76,6 +76,7 @@ Button.Icon_Shadow_Focus
|
|
|
76
76
|
|
|
77
77
|
- `Button` (`src/components/Button/Button.tsx`) — текстовая/универсальная кнопка, используемая вместо `ButtonIcon` когда нужен label.
|
|
78
78
|
- `ButtonDropdown` (`src/components/Button/ButtonDropdown.tsx`) — использует иконочный паттерн для dots-варианта trigger.
|
|
79
|
+
- `IconWrapper` (`src/components/IconWrapper`) — оборачивает `<button>` в режиме `displayContents`; через неё в иконку уходят состояния `active` / `disabled`.
|
|
79
80
|
|
|
80
81
|
---
|
|
81
82
|
|
|
@@ -104,6 +105,7 @@ Button.Icon_Shadow_Focus
|
|
|
104
105
|
| 2026-07-08 | Актуализирована таблица Stories: story `Disabled` заменена на `States` (`StatesExample.tsx`). |
|
|
105
106
|
| 2026-07-15 | `vertical-align: top` заменён на `middle` (синхронно с `Button`) — общая опорная точка для кнопок разной высоты и центрирование относительно строки инлайн-текста. |
|
|
106
107
|
| 2026-07-30 | AI-рефакторинг: внутренние импорты переведены на относительные, `children` объявлен и задокументирован явно, JSDoc уточнён дефолтами; добавлены unit-тесты `__tests__/ButtonIcon.test.tsx`; в таблицу Stories добавлены отсутствовавшие `VisualTestsSquircle` и `VisualTestsCircle`. Публичный API не изменён. |
|
|
108
|
+
| 2026-09-29 | Аудит симметрии `related` (TRI-156): добавлены обратные ссылки (`IconWrapper`). Публичный API и поведение не затронуты. |
|
|
107
109
|
|
|
108
110
|
---
|
|
109
111
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
component: Calendar
|
|
3
3
|
category: Date components
|
|
4
|
-
related: [DatePickerExtended, DateField,
|
|
4
|
+
related: [DatePickerExtended, DateField, MonthYearField, MonthYearRange, ChipDatePicker]
|
|
5
5
|
tokens:
|
|
6
6
|
- Calendar.Background
|
|
7
7
|
- Calendar.View_Header_Color
|
|
@@ -202,6 +202,8 @@ Calendar.View_Item_Mark_Critical_Background_Selected_Hover
|
|
|
202
202
|
|---|---|
|
|
203
203
|
| 2026-07-30 | Создан документ. AI-рефакторинг: общие хелперы клавиатурной навигации и сдвига даты в `utils.ts`, чистка дублирования в `CalendarControls` и сетках, JSDoc на публичных типах, `displayName` у субкомпонентов; добавлены unit-тесты (`Calendar`, `CalendarViewItem`, `utils`) |
|
|
204
204
|
| 2026-07-30 | Исправлены найденные при рефакторинге баги: выбор первой tabbable-ячейки перебирал кандидатов с накоплением шага (в виде годов — месяцами вместо лет; хелпер `getFirstEnabledDate`); заголовок при внешней смене `pickedDate` игнорировал формат вида (`MONTH_YEAR` показывал «March 1970» вместо «1970»); фокус после `PageUp`/`PageDown` не возвращался на tabbable-ячейку, если её позиция сетки не менялась; шаг страницы в `changeTabbableDate`/`changeFocusedDate` переведён на `NAVIGATION_STEPS.page`. Расширения API: `dateFrom`/`dateTo` в `IDateLimitRange` стали опциональными, функциональный `dayHtmlAttributes` допускает `data-*` (`TTdHTMLAttributesWithData`) |
|
|
205
|
+
| 2026-09-29 | Исправлена стилизация: скругление ячеек `MONTHS`- и `YEARS`-видов (`.unitMonth`, `.unitYear`) в обычном режиме приведено к `10px` (было `6px`), совпадает с адаптивным режимом. Разделитель диапазона лет в заголовке (`formatDate`) заменён с `" - "` на короткое тире `"–"` без пробелов (например, `1965–1976` вместо `1965 - 1976`) |
|
|
206
|
+
| 2026-09-29 | Аудит симметрии `related` (TRI-156): из `related` убран `DateRange` — связь только по сценарию использования: `DateRange` рендерит поля выбора даты через render-props (`renderPickerFrom` / `renderPickerTo`) и сам не импортирует ни `Calendar`, ни `DateField`. Пояснение сохранено прозой в «Связанные компоненты». Публичный API и поведение не затронуты. |
|
|
205
207
|
|
|
206
208
|
---
|
|
207
209
|
|
|
@@ -228,6 +228,7 @@ Card.Shadow_Focus
|
|
|
228
228
|
| Дата | Изменение |
|
|
229
229
|
|---|---|
|
|
230
230
|
| 2026-09-10 | Создан документ |
|
|
231
|
+
| 2026-09-28 | Токены `Card.Shadow_Default` и `Card.Shadow_Hover` ссылаются на `Shadow.03`/`Shadow.06` (светлая) и `DarkShadow.03`/`DarkShadow.06` (тёмная) вместо литералов; в тёмной теме теперь есть внешняя тень (раньше `none`). |
|
|
231
232
|
|
|
232
233
|
---
|
|
233
234
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
component: CheckboxXGroup
|
|
3
3
|
category: Inputs
|
|
4
|
-
related: [Checkbox]
|
|
4
|
+
related: [Checkbox, CheckboxYGroup]
|
|
5
5
|
tokens: []
|
|
6
6
|
stories: stories/CheckboxXGroup/CheckboxXGroup.stories.tsx
|
|
7
7
|
version: "1.0"
|
|
@@ -88,6 +88,7 @@ version: "1.0"
|
|
|
88
88
|
| 2026-04-16 | Приведение `CheckboxXGroup` к AI-ready: добавлен `forwardRef`, типизирован `children`, созданы AI-документ и инварианты. |
|
|
89
89
|
| 2026-04-27 | Приведён в соответствие с `docs/ai/template-ai.md`: убрана секция «Ключевые особенности реализации» (содержимое перенесено в `Ограничения использования`), переставлены секции, добавлена колонка `Example file` и пустой раздел `Дизайн-токены`. |
|
|
90
90
|
| 2026-08-18 | AI-рефакторинг: JSDoc на props и компоненте, комментарий про кросс-модульный класс `.label` в LESS, добавлены unit-тесты `__tests__/CheckboxXGroup.test.tsx`. Публичный API не изменён. |
|
|
91
|
+
| 2026-09-29 | Аудит симметрии `related` (TRI-156): добавлены обратные ссылки (`CheckboxYGroup`). Публичный API и поведение не затронуты. |
|
|
91
92
|
|
|
92
93
|
---
|
|
93
94
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
component: Chip
|
|
3
3
|
category: Chips
|
|
4
|
-
related: [ChipGroup,
|
|
4
|
+
related: [ChipGroup, ChipOptions, ChipSelect, ChipMultiselect, ChipSort, ChipSuggest, ChipDatePicker, ChipMonthYearPicker, Badge, IconWrapper]
|
|
5
5
|
tokens:
|
|
6
6
|
- Chip.Background_Type1_Default
|
|
7
7
|
- Chip.Background_Type1_Hover
|
|
@@ -240,6 +240,7 @@ Default и Hover. Цвет текста (`Color_*`) от типа не зави
|
|
|
240
240
|
| 2026-07-29 | AI-рефакторинг (TRI-26): codestyle-чистка `Chip.tsx` (константы-маппинги в UPPER_SNAKE_CASE, эквивалентные упрощения в `clsx`, JSDoc на `children` и `handleKeyDown`), unit-тесты расширены с 5 до 22 кейсов; публичный API, DOM и визуал не изменены |
|
|
241
241
|
| 2026-07-29 | Правки по ревью PR #487: уточнена атрибуция класса `.chipGroupItem` (его проставляет семейство Chip*, а не раскладка `ChipGroup`) и описание API `ChipClearButton` / `ChipDropdownArrow` |
|
|
242
242
|
| 2026-09-07 | В семейство добавлен `ChipMonthYearPicker` — упомянут в списках потребителей `Chip` и `.chipGroupItem` |
|
|
243
|
+
| 2026-09-29 | Аудит симметрии `related` (TRI-156): из `related` убраны имена без строки в `docs/ai/ROADMAP.md` (`ChipIcon`, `ChipClearButton`, `ChipDropdownArrow`). Пояснения к убранным именам сохранены прозой в «Связанные компоненты»; публичный API и поведение не затронуты. |
|
|
243
244
|
|
|
244
245
|
---
|
|
245
246
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
component: ChipMonthYearPicker
|
|
3
3
|
category: Chips
|
|
4
|
-
related: [Chip, ChipDatePicker,
|
|
4
|
+
related: [Chip, ChipDatePicker, MonthYearField, DatePickerExtended]
|
|
5
5
|
tokens: []
|
|
6
6
|
stories: stories/Chips/ChipMonthYearPicker.stories.tsx
|
|
7
7
|
version: "1.0"
|
|
@@ -197,6 +197,7 @@ selected = getPickerValues(value, format, limitRange).calendarDate !== null
|
|
|
197
197
|
| Дата | Изменение |
|
|
198
198
|
|---|---|
|
|
199
199
|
| 2026-09-07 | Создан компонент и документ (AI-Ready Phase 1) |
|
|
200
|
+
| 2026-09-29 | Аудит симметрии `related` (TRI-156): из `related` убраны несимметричные имена (`ChipGroup`). Пояснения к убранным именам сохранены прозой в «Связанные компоненты»; публичный API и поведение не затронуты. |
|
|
200
201
|
|
|
201
202
|
---
|
|
202
203
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
component: ChipMultiselect
|
|
3
3
|
category: Chips
|
|
4
|
-
related: [Chip,
|
|
4
|
+
related: [Chip, ChipSelect, ChipOptions, MultiselectField, SelectExtendedField]
|
|
5
5
|
tokens: []
|
|
6
6
|
stories: stories/Chips/ChipMultiselect.stories.tsx
|
|
7
7
|
version: "1.0"
|
|
@@ -169,6 +169,8 @@ Postfix переключается тем же флагом `selected`: `ChipDro
|
|
|
169
169
|
- `ChipGroup` — контейнер для ряда чипсов; корневой класс `chipGroupItem`
|
|
170
170
|
проставляется именно ради него.
|
|
171
171
|
- `ChipSelect` — тот же чипс-фильтр, но для выбора одного значения.
|
|
172
|
+
- `ChipOptions` — альтернатива, когда содержимое дропдауна произвольное, а не готовый
|
|
173
|
+
список значений: тот же `clearSelected` и счётчик, но без собственного target-элемента.
|
|
172
174
|
- `MultiselectField` — родитель по типам и по рендеру: даёт состояние открытости,
|
|
173
175
|
выпадающий блок (`MultiselectField.Dropdown`), focus trap и раздачу размера.
|
|
174
176
|
- `SelectExtendedField` — уровнем ниже `MultiselectField`; из него приходит тип
|
|
@@ -202,6 +204,7 @@ Postfix переключается тем же флагом `selected`: `ChipDro
|
|
|
202
204
|
| Дата | Изменение |
|
|
203
205
|
|---|---|
|
|
204
206
|
| 2026-09-07 | Создан документ (TRI-135). AI-рефакторинг: JSDoc на props и компоненте, мемоизация обработчиков кнопки сброса, порядок импортов; поведение и публичный API не менялись |
|
|
207
|
+
| 2026-09-29 | Аудит симметрии `related` (TRI-156): из `related` убраны несимметричные имена (`ChipGroup`); добавлены обратные ссылки (`ChipOptions`). Пояснения к убранным именам сохранены прозой в «Связанные компоненты»; публичный API и поведение не затронуты. |
|
|
205
208
|
|
|
206
209
|
---
|
|
207
210
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
component: ChipOptions
|
|
3
3
|
category: Chips
|
|
4
|
-
related: [Chip,
|
|
4
|
+
related: [Chip, ChipSort, ChipMultiselect]
|
|
5
5
|
tokens: []
|
|
6
6
|
stories: stories/Chips/ChipOptions.stories.tsx
|
|
7
7
|
version: "1.0"
|
|
@@ -176,6 +176,7 @@ version: "1.0"
|
|
|
176
176
|
| 2026-09-04 | Создан документ (TRI-133, AI-Ready Phase 1) |
|
|
177
177
|
| 2026-09-04 | AI-рефакторинг (TRI-133): JSDoc на интерфейсе, `size` разобран из props явно, иконка опций собрана в один элемент со сменой `paletteIndex`, `typeof children !== "undefined"` → `children !== undefined`, комментарий про `<span />`-заглушку в `postfix`; unit-тесты расширены с 3 до 19 кейсов. Публичный API, DOM и визуал не изменены |
|
|
178
178
|
| 2026-09-08 | Добавлен prop `clearButtonProps` (TRI-133): кнопке сброса можно задать `aria-label`, `disabled` и прочие props `ChipClearButton`; переданные `onClick` / `onKeyDown` вызываются после собственных обработчиков компонента. `Enter` / `Space` на кнопке сброса больше не всплывают до `Chip` — `Space` активирует кнопку, внешний `onKeyDown` чипса не срабатывает заодно со сбросом |
|
|
179
|
+
| 2026-09-29 | Аудит симметрии `related` (TRI-156): из `related` убраны несимметричные имена (`ChipGroup`). Пояснения к убранным именам сохранены прозой в «Связанные компоненты»; публичный API и поведение не затронуты. |
|
|
179
180
|
|
|
180
181
|
---
|
|
181
182
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
component: ChipSort
|
|
3
3
|
category: Chips
|
|
4
|
-
related: [Chip, ChipSelect,
|
|
4
|
+
related: [Chip, ChipSelect, ChipOptions, SelectExtendedField, IconWrapper]
|
|
5
5
|
tokens: []
|
|
6
6
|
stories: stories/Chips/ChipSort.stories.tsx
|
|
7
7
|
version: "1.0"
|
|
@@ -178,6 +178,8 @@ JSX, `isEqual` сравнивает деревья элементов. Держ
|
|
|
178
178
|
- `ChipGroup` — рекомендуемый контейнер: отступы, перенос строк, режим `oneLine`
|
|
179
179
|
- `SelectExtendedField` — база: владеет состоянием открытости, правилами закрытия
|
|
180
180
|
и корневым `<div>`; список рендерится через `SelectExtendedFieldDropdownDefault`
|
|
181
|
+
- `ChipOptions` — тот же приём (иконка в `prefix` + смена палитры по `selected`), но для
|
|
182
|
+
набора опций и с кнопкой сброса
|
|
181
183
|
- `IconWrapper` — обёртка иконки сортировки, добавляет состояния `active` / `disabled`
|
|
182
184
|
|
|
183
185
|
---
|
|
@@ -203,6 +205,7 @@ JSX, `isEqual` сравнивает деревья элементов. Держ
|
|
|
203
205
|
|---|---|
|
|
204
206
|
| 2026-09-04 | Создан документ (TRI-132, AI-Ready Phase 1) |
|
|
205
207
|
| 2026-09-04 | AI-рефакторинг (TRI-132): codestyle-чистка `ChipSort.tsx` (объединены дублирующиеся импорты, пути приведены к `../`, magic-числа палитры иконки вынесены в именованные константы, добавлены JSDoc и комментарии к нетривиальной логике), unit-тесты расширены с 1 до 19 кейсов; публичный API, DOM и визуал не изменены |
|
|
208
|
+
| 2026-09-29 | Аудит симметрии `related` (TRI-156): из `related` убраны несимметричные имена (`ChipGroup`); добавлены обратные ссылки (`ChipOptions`). Пояснения к убранным именам сохранены прозой в «Связанные компоненты»; публичный API и поведение не затронуты. |
|
|
206
209
|
|
|
207
210
|
---
|
|
208
211
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
component: CollapsibleTree
|
|
3
3
|
category: CollapsibleTree
|
|
4
|
-
related: [CollapsibleTreeExtended,
|
|
4
|
+
related: [CollapsibleTreeExtended, TreeView, AccordionBase]
|
|
5
5
|
tokens:
|
|
6
6
|
- CollapsibleTree.Header_Background_Hover
|
|
7
7
|
- CollapsibleTree.Header_Shadow_Focus
|
|
@@ -231,6 +231,7 @@ CollapsibleTree.Header_Shadow_Focus
|
|
|
231
231
|
| 2026-07-06 | Добавлено свойство `disabled` у `ICollapsibleTreeNodeBranch` и поддержка пропа `disabled` в `CollapsibleTreeNodeHeader`. Без новых токенов: шеврон приглушается глобальными классами `hoverable disabled` (icons-next), текст — через `type={EFontType.DISABLED}` у лейбла |
|
|
232
232
|
| 2026-07-14 | Глобальный класс `hoverable` (icons-next) на кнопке заголовка теперь стоит всегда, а не только при `disabled` — для корректной окраски шеврона. Добавлен класс `active` на раскрытый узел с детьми (по паттерну `IconWrapper`/`Button`) |
|
|
233
233
|
| 2026-09-17 | TRI-22: инвариант про отсутствие `forwardRef` переформулирован — `CollapsibleTreeExtended` и `TreeView` под ним теперь пробрасывают `ref` на корневой `<ul>`, поэтому прежнее обоснование не действует, а `CollapsibleTree` остаётся долгом |
|
|
234
|
+
| 2026-09-29 | Аудит симметрии `related` (TRI-156): из `related` убраны имена без строки в `docs/ai/ROADMAP.md` (`CollapsibleTreeNodeHeader`, `CollapsibleTreeNodeLabel`). Пояснения к убранным именам сохранены прозой в «Связанные компоненты»; публичный API и поведение не затронуты. |
|
|
234
235
|
|
|
235
236
|
---
|
|
236
237
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
component: ComposedKeyDownListener
|
|
3
3
|
category: KeyDownListener
|
|
4
|
-
related: [KeyDownListener, TriggerClickOnKeyDownEvent
|
|
4
|
+
related: [KeyDownListener, TriggerClickOnKeyDownEvent]
|
|
5
5
|
tokens: []
|
|
6
6
|
stories: stories/ComposedKeyDownListener/ComposedKeyDownListener.stories.tsx
|
|
7
7
|
version: "1.0"
|
|
@@ -125,8 +125,8 @@ version: "1.0"
|
|
|
125
125
|
сравнение по устаревшему `event.keyCode` и константы `EVENT_KEY_CODES`.
|
|
126
126
|
- `TriggerClickOnKeyDownEvent` (`src/components/Triggers/`) — по нажатию клавиши
|
|
127
127
|
вызывает `click` на элементе из `targetRef`.
|
|
128
|
-
- `SelectExtendedField`, `SliderExtendedDot`, `SliderExtendedTrack` —
|
|
129
|
-
`KeyDownListener` внутри
|
|
128
|
+
- `SelectExtendedField`, `SliderExtended` (`SliderExtendedDot`, `SliderExtendedTrack`) —
|
|
129
|
+
потребители базового `KeyDownListener` внутри библиотеки, а не композитора.
|
|
130
130
|
|
|
131
131
|
---
|
|
132
132
|
|
|
@@ -153,6 +153,7 @@ version: "1.0"
|
|
|
153
153
|
| Дата | Изменение |
|
|
154
154
|
|---|---|
|
|
155
155
|
| 2026-08-11 | Создан документ (TRI-112). Слушатели рендерятся соседями к `children` вместо вложения — смена длины `keyDownListeners` больше не перемонтирует содержимое (покрыто unit-тестом). Добавлен собственный набор stories по modern pattern; демонстрационная story `Example` перенесена из набора `KeyDownListener`. Публичный API не изменён. |
|
|
156
|
+
| 2026-09-29 | Аудит симметрии `related` (TRI-156): из `related` убраны несимметричные имена (`SelectExtendedField`, `SliderExtended`). Пояснения к убранным именам сохранены прозой в «Связанные компоненты»; публичный API и поведение не затронуты. |
|
|
156
157
|
|
|
157
158
|
---
|
|
158
159
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
component: DateField
|
|
3
3
|
category: Date components
|
|
4
|
-
related: [DatePickerExtended, MonthYearField, ChipDatePicker, MaskedField, Calendar, Tooltip]
|
|
4
|
+
related: [DatePickerExtended, MonthYearField, ChipDatePicker, MaskedField, Calendar, Tooltip, FormField]
|
|
5
5
|
tokens: []
|
|
6
6
|
stories: stories/DateField/DateField.stories.tsx
|
|
7
7
|
version: "1.0"
|
|
@@ -99,6 +99,11 @@ version: "1.0"
|
|
|
99
99
|
- `MaskedField` — внутреннее поле-триггер; его props частично входят в публичный API (`size`, `status`, `label`, `targetProps`).
|
|
100
100
|
- `Calendar` — календарь внутри дропдауна; его props (`limitRange`, `disabledDays`, `markedDays`, `format`) входят в публичный API через `DatePickerExtended`.
|
|
101
101
|
- `Tooltip` — показывает `invalidDateHint` при вводе недоступной даты (только desktop-ветка).
|
|
102
|
+
- `FormField` — семейство строительных блоков поля, на котором собран `MaskedField`: оттуда
|
|
103
|
+
в публичный API `DateField` приходят `size` и `status` (через
|
|
104
|
+
`Pick<IMaskedFieldProps, "size" | "status" | "label">`, вместе с `label`). Слоты
|
|
105
|
+
`prefix` / `postfix` из `IFormFieldProps` исключены — их заново объявляет `TextFieldBase`,
|
|
106
|
+
и доступны они только вложенно, через `targetProps`.
|
|
102
107
|
- `DateFieldTarget` (внутренний, не в barrel) — рендерит `MaskedField` с иконкой календаря и кнопкой очистки, обрабатывает клик/клавиатуру/фокус. Описан здесь, отдельного AI.md не имеет. Покрыт `__tests__/DateFieldTarget.test.tsx`.
|
|
103
108
|
- `DateFieldContext` (внутренний, не в barrel) — прокидывает `onChange`, `inputFocusedRef` и `triggerChangeFromInput` в target.
|
|
104
109
|
- `DateFieldUtils` (`utils.ts`, внутренний) — чистые функции парсинга/валидации даты (`getPickerValues`, `getCalendarDate`, `isAvailableDate`). Покрыты `__tests__/utils.test.tsx`.
|
|
@@ -126,6 +131,7 @@ version: "1.0"
|
|
|
126
131
|
| Дата | Изменение |
|
|
127
132
|
|---|---|
|
|
128
133
|
| 2026-09-08 | Создан документ. AI-рефакторинг (JSDoc-фиксы, `displayName` у `DateFieldTarget`), unit-тесты для `utils.ts`, поведения поля (ввод, blur, клавиатура, колбэки дропдауна) и `DateFieldTarget` (фокус, mousedown, клавиатура, проброс обработчиков) |
|
|
134
|
+
| 2026-09-29 | Аудит симметрии `related` (TRI-156): добавлены обратные ссылки (`FormField`). Публичный API и поведение не затронуты. |
|
|
129
135
|
|
|
130
136
|
---
|
|
131
137
|
|