@sberbusiness/triplex-next-mcp-server 1.45.0-beta → 1.48.0-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/bundle/components/AmountField.md +222 -323
- package/bundle/components/Avatar.md +138 -146
- package/bundle/components/CardAction.md +615 -0
- package/bundle/components/CardStatic.md +402 -0
- package/bundle/components/CheckboxTree.md +157 -215
- package/bundle/components/CheckboxTreeExtended.md +7 -7
- package/bundle/components/Chip.md +7 -6
- package/bundle/components/ChipGroup.md +1 -1
- package/bundle/components/ChipMonthYearPicker.md +344 -0
- package/bundle/components/ChipMultiselect.md +1251 -0
- package/bundle/components/ChipOptions.md +329 -0
- package/bundle/components/ChipSort.md +333 -0
- package/bundle/components/ChipSuggest.md +588 -0
- package/bundle/components/CollapsibleTree.md +8 -4
- package/bundle/components/CollapsibleTreeExtended.md +8 -6
- package/bundle/components/Confirm.md +346 -281
- package/bundle/components/DateField.md +222 -303
- package/bundle/components/DatePickerExtended.md +3 -1
- package/bundle/components/DateRange.md +351 -210
- package/bundle/components/FooterPage.md +1 -0
- package/bundle/components/FormField.md +14 -5
- package/bundle/components/FormGroup.md +3 -2
- package/bundle/components/HelpBox.md +7 -1
- package/bundle/components/IslandAccordion.md +443 -152
- package/bundle/components/IslandWidget.md +622 -157
- package/bundle/components/LightBox.md +8 -0
- package/bundle/components/ListMaster.md +2 -2
- package/bundle/components/ListTableItem.md +6 -6
- package/bundle/components/MaskedField.md +2 -1
- package/bundle/components/MonthYearField.md +18 -5
- package/bundle/components/Slider.md +389 -97
- package/bundle/components/SliderRange.md +486 -105
- package/bundle/components/StatusTracker.md +386 -94
- package/bundle/components/Stepper.md +355 -102
- package/bundle/components/StepperExtended.md +633 -0
- package/bundle/components/SuggestField.md +1049 -96
- package/bundle/components/SwipeableArea.md +7 -7
- package/bundle/components/Tabs.md +265 -92
- package/bundle/components/TabsExtended.md +18 -18
- package/bundle/components/TabsLine.md +301 -127
- package/bundle/components/TagColor.md +187 -66
- package/bundle/components/TagGroup.md +184 -48
- package/bundle/components/TextareaField.md +278 -70
- package/bundle/components/TopOverlay.md +17 -1
- package/bundle/components/TreeView.md +16 -7
- package/bundle/components/TriggerClickOnKeyDownEvent.md +277 -0
- package/bundle/components/UploadZone.md +318 -0
- package/bundle/guides/codestyle.md +16 -1
- package/bundle/guides/commits.md +47 -1
- package/bundle/guides/tests.md +23 -2
- package/bundle/manifest.json +92 -24
- package/bundle/release-notes/1.46.0.mdx +59 -0
- package/bundle/release-notes/1.47.0.mdx +122 -0
- package/bundle/release-notes/1.48.0.mdx +68 -0
- package/bundle/release-notes/1.49.0.mdx +7 -0
- package/bundle/tokens.json +3 -3
- package/dist/index.js +220 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
---
|
|
2
|
+
component: ChipMonthYearPicker
|
|
3
|
+
category: Chips
|
|
4
|
+
related: [Chip, ChipDatePicker, ChipGroup, MonthYearField, DatePickerExtended]
|
|
5
|
+
tokens: []
|
|
6
|
+
stories: stories/Chips/ChipMonthYearPicker.stories.tsx
|
|
7
|
+
version: "1.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# ChipMonthYearPicker
|
|
11
|
+
|
|
12
|
+
## Назначение
|
|
13
|
+
|
|
14
|
+
Выбор месяца и года в виде чипса: в свёрнутом виде показывает название фильтра либо
|
|
15
|
+
выбранный месяц, по нажатию открывает календарь, сразу открытый на сетке месяцев
|
|
16
|
+
(`ECalendarPickType.MONTH_YEAR`). Ввода с клавиатуры нет — значение меняется только
|
|
17
|
+
выбором в календаре.
|
|
18
|
+
|
|
19
|
+
Используй когда: в панели фильтров нужен период гранулярности «месяц» (отчётный период,
|
|
20
|
+
месяц выписки) и результат должен читаться прямо на чипсе.
|
|
21
|
+
Не используй когда: нужна конкретная дата (`ChipDatePicker`), нужен диапазон месяцев
|
|
22
|
+
(`MonthYearRange`) или поле в форме с лейблом и статусом валидации (`MonthYearField`).
|
|
23
|
+
|
|
24
|
+
Компонент управляемый: `value` и `onChange` держит потребитель. Рекомендуется
|
|
25
|
+
располагать внутри `ChipGroup` — он задаёт отступы и режим одной строки.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Варианты и props
|
|
30
|
+
|
|
31
|
+
`IChipMonthYearPickerProps` — это `IMonthYearFieldProps` без props поля формы
|
|
32
|
+
(`status`, `label`, `onClear`, `targetProps`) и без `pickType` (зафиксирован
|
|
33
|
+
компонентом), плюс `type` / `disabled` от `IChipProps` и собственные `label`,
|
|
34
|
+
`displayedValue`, `clearButtonProps`. То есть все props `DatePickerExtended`
|
|
35
|
+
(`alignment`, `limitRange`, `disabledDays`, `defaultViewDate`, `onDropdownOpen` /
|
|
36
|
+
`onDropdownClose`, `focusTrapProps`, кнопки навигации календаря) доступны и уходят
|
|
37
|
+
в него спредом.
|
|
38
|
+
|
|
39
|
+
`label` переопределён по сравнению с `MonthYearField`: там это лейбл поля из
|
|
40
|
+
`TextField`, здесь — **обязательный** текст самого чипса в невыбранном состоянии.
|
|
41
|
+
|
|
42
|
+
Неизвестные компоненту атрибуты (`data-*`, `aria-*`, `id`, обработчики `<div>`)
|
|
43
|
+
попадают на корневой `<div>` `DatePickerExtended`, а не на чипс-таргет.
|
|
44
|
+
|
|
45
|
+
### Обязательные props
|
|
46
|
+
|
|
47
|
+
| Prop | Тип | Описание |
|
|
48
|
+
|---|---|---|
|
|
49
|
+
| `value` | `string` | Значение в формате `format`. Пустая строка либо непарсимое/выходящее за `limitRange` значение = «не выбрано» |
|
|
50
|
+
| `label` | `React.ReactNode` | Текст чипса, пока значение не выбрано |
|
|
51
|
+
| `onChange` | `(value: string) => void` | Вызывается с датой в формате `format` при выборе месяца и с `""` при очистке |
|
|
52
|
+
|
|
53
|
+
### Опциональные props
|
|
54
|
+
|
|
55
|
+
| Prop | Тип | По умолчанию | Описание |
|
|
56
|
+
|---|---|---|---|
|
|
57
|
+
| `format` | `string` | `"YYYYMMDD"` (`dateFormatYYYYMMDD`) | Транспортный формат `value`. На отображение не влияет |
|
|
58
|
+
| `limitRange` | `IDateLimitRange` | `globalLimitRange` (1900-01-01 … 2199-12-31) | Границы выбора. Значение вне диапазона считается невыбранным |
|
|
59
|
+
| `displayedValue` | `React.ReactNode` | — | Показывается вместо отформатированного значения, **только когда значение выбрано** |
|
|
60
|
+
| `placeholder` | `string` | — | Подсказка в поле шапки мобильного дропдауна. В самом чипсе не видна |
|
|
61
|
+
| `size` | `EComponentSize` | `MD` (дефолт `Chip`) | Размер чипса, иконки очистки и стрелки |
|
|
62
|
+
| `type` | `EChipType` | `TYPE_1` | Визуальный тип чипса |
|
|
63
|
+
| `disabled` | `boolean` | `false` | Блокирует открытие календаря и очистку |
|
|
64
|
+
| `clearButtonProps` | `Omit<IChipClearButtonProps, "size" \| "disabled" \| "onClick" \| "onKeyDown">` | — | Props кнопки очистки; основное назначение — задать `aria-label`. `size` и `disabled` наследуются от чипса и не переопределяются |
|
|
65
|
+
| `alignment` | `EDropdownAlignment` | `LEFT` | Выравнивание дропдауна относительно чипса |
|
|
66
|
+
| `className` | `string` | — | Дополнительный класс корневого `<div>`, мержится с `.chipGroupItem` |
|
|
67
|
+
|
|
68
|
+
### Отображаемое значение
|
|
69
|
+
|
|
70
|
+
Порядок вычисления того, что видно на чипсе:
|
|
71
|
+
|
|
72
|
+
```text
|
|
73
|
+
selected = getPickerValues(value, format, limitRange).calendarDate !== null
|
|
74
|
+
чипс = selected ? (displayedValue ?? value в формате "MMM YYYY") : label
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
- формат отображения — `inputMonthYearFormat` (`"MMM YYYY"`) из
|
|
78
|
+
`MonthYearField/constants.ts`, локализуется глобальной локалью `moment`
|
|
79
|
+
(`Jan 1970` по умолчанию, `янв. 1970` при `moment.locale("ru")`). Он **не**
|
|
80
|
+
зависит от `format` — тот описывает только транспортное значение;
|
|
81
|
+
- `value`, которое не парсится по `format` или выходит за `limitRange`, молча
|
|
82
|
+
трактуется как «не выбрано»: показывается `label`, исключения не бросаются;
|
|
83
|
+
- `displayedValue` при пустом `value` игнорируется — приоритет всегда у `label`.
|
|
84
|
+
|
|
85
|
+
### Постфикс чипса
|
|
86
|
+
|
|
87
|
+
Правый слот переключается по тому же `selected`: выбранное значение → `ChipClearButton`
|
|
88
|
+
(очистка), невыбранное → `ChipDropdownArrow`, повёрнутая при открытом дропдауне.
|
|
89
|
+
Отдельной кнопки-календаря, как в `MonthYearField`, у чипса нет.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Дизайн-токены
|
|
94
|
+
|
|
95
|
+
Собственных токенов у компонента нет: в `styles/Chip.module.less` ему принадлежит
|
|
96
|
+
только `.chipGroupItem` (`display: inline-block`). Весь визуал приходит из компонентов,
|
|
97
|
+
на которых он построен:
|
|
98
|
+
|
|
99
|
+
- чипс-таргет — `Chip` (группа `Chip`: фон, цвет, тень фокуса, состояния `selected` и `disabled`);
|
|
100
|
+
- кнопка очистки и стрелка — `ChipClearButton` / `ChipDropdownArrow` поверх `ButtonIcon`
|
|
101
|
+
и `IconWrapper`, палитра иконок задаётся `paletteIndex`, а не токеном;
|
|
102
|
+
- календарь и выпадающий блок — `Calendar` (группа `Calendar`) и `Dropdown`.
|
|
103
|
+
|
|
104
|
+
Полный список токенов чипса — в `Chip-ai.md` → «Дизайн-токены», календаря —
|
|
105
|
+
в `Calendar-ai.md`.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Инварианты
|
|
110
|
+
|
|
111
|
+
- **`forwardRef`** — не убирать. `ref` указывает на корневой `<div>` `DatePickerExtended`,
|
|
112
|
+
а не на чипс-таргет. Цель `ref` не менять — на ней держится тест `Should forward ref correctly`.
|
|
113
|
+
- **`pickType` зафиксирован** значением `ECalendarPickType.MONTH_YEAR` и исключён из props
|
|
114
|
+
(`Omit`). Возможность выбрать день здесь не открывать — для этого есть `ChipDatePicker`.
|
|
115
|
+
- **`label` обязателен и переопределяет опциональный `label` из `IMonthYearFieldProps`** —
|
|
116
|
+
без него у чипса нет невыбранного состояния.
|
|
117
|
+
- **Пустая строка — контракт очистки.** Кнопка очистки вызывает `onChange("")`;
|
|
118
|
+
отдельного `onClear` (как в `MonthYearField`) у компонента намеренно нет.
|
|
119
|
+
- **`className` мержится через `clsx` с `.chipGroupItem`** на корневом `<div>` —
|
|
120
|
+
общий маркер семейства Chip*. Не удалять и не заменять спредом `...rest`.
|
|
121
|
+
- **Значение вне `limitRange` не является ошибкой** — оно показывается как невыбранное.
|
|
122
|
+
Компонент библиотеки не бросает исключений в рантайме.
|
|
123
|
+
- **Barrel `src/components/Chip/index.ts`** экспортирует `ChipMonthYearPicker`,
|
|
124
|
+
`ChipMonthYearPickerTarget` и их интерфейсы — сохранять.
|
|
125
|
+
- **Story ids `chips-chipmonthyearpicker--*`** завязаны на baseline-скриншоты
|
|
126
|
+
в `__screenshots__/` — переименование story требует обновления baseline.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Accessibility
|
|
131
|
+
|
|
132
|
+
- Таргет — `<span role="button">` из `Chip` с `aria-expanded`, отражающим состояние
|
|
133
|
+
дропдауна. Доступное имя берётся из содержимого чипса (`label` либо значение).
|
|
134
|
+
- **Клавиатура на чипсе:** Enter и Space открывают и закрывают календарь с
|
|
135
|
+
`preventDefault()` (гасят прокрутку и «клик» по пробелу). Escape на открытом
|
|
136
|
+
дропдауне закрывает его (`DatePickerExtended`). `onKeyDown`, переданный в
|
|
137
|
+
`ChipMonthYearPicker`, в чипс-таргет не пробрасывается — он попадает на корневой
|
|
138
|
+
`<div>` `DatePickerExtended` вместе с остальным `...rest` и ловит всплывающие
|
|
139
|
+
события. Собственный `onKeyDown` экспортируемого `ChipMonthYearPickerTarget`
|
|
140
|
+
вызывается на любую клавишу, как у базового `Chip`; Enter/Space дополнительно
|
|
141
|
+
переключают дропдаун, если чипс не `disabled`. Навигация по сетке месяцев —
|
|
142
|
+
стрелки (шаг: ±1 месяц по горизонтали, ±3 по вертикали, PageUp/PageDown — ±1 год),
|
|
143
|
+
внутри `CalendarViewMonths`.
|
|
144
|
+
- **Кнопка очистки** гасит всплытие Enter/Space и клика, поэтому активируется сама,
|
|
145
|
+
а не открывает календарь. Своего текста у неё нет: задать доступное имя обязан
|
|
146
|
+
потребитель через `clearButtonProps={{ "aria-label": "…" }}` — библиотека
|
|
147
|
+
мультиязычная и текст не хардкодит.
|
|
148
|
+
Её `disabled` не переопределяется из `clearButtonProps` (исключён из типа) —
|
|
149
|
+
на задизейбленном чипсе очистка всегда недоступна.
|
|
150
|
+
- **Фокус:** дропдаун — `role="dialog"` с `aria-modal` и `FocusTrap`. При открытии
|
|
151
|
+
с клавиатуры фокус уходит в календарь и возвращается на чипс при закрытии; при
|
|
152
|
+
открытии мышью фокус не перехватывается (`mouseUsedRef` в `DatePickerExtended`).
|
|
153
|
+
- `disabled` у `Chip` не нативный: `pointer-events: none` плюс `tabIndex={-1}`.
|
|
154
|
+
Дополнительно таргет сам игнорирует клик и Enter/Space, а `ChipClearButton`
|
|
155
|
+
получает `disabled`. Программно диспатченные события всё же дойдут до DOM —
|
|
156
|
+
см. `Chip-ai.md`.
|
|
157
|
+
- В мобильном режиме календарь показывается как мобильный `Dropdown`: в шапке —
|
|
158
|
+
поле `readOnly` с выбранным значением и `placeholder`, справа — кнопка закрытия.
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Связанные компоненты
|
|
163
|
+
|
|
164
|
+
- `Chip` — база таргета: классы состояний, фокус, `role="button"`, ограничения `disabled`
|
|
165
|
+
- `ChipDatePicker` — альтернатива для выбора конкретной даты; тот же чипс-таргет,
|
|
166
|
+
но с маскированным ручным вводом и связанным с ним локальным состоянием
|
|
167
|
+
- `ChipGroup` — рекомендуемый контейнер: отступы, перенос строк, режим `oneLine`
|
|
168
|
+
- `MonthYearField` — тот же выбор месяца в виде поля формы; источник
|
|
169
|
+
`IMonthYearFieldProps` и утилит `MonthYearPickerUtils`
|
|
170
|
+
- `DatePickerExtended` — база: владеет состоянием открытости, дропдауном, календарём
|
|
171
|
+
и корневым `<div>`; получает `renderTarget` и `renderDropdownHeaderTarget`
|
|
172
|
+
- `ChipMonthYearPickerTarget` — чипс-таргет этого компонента (экспортируется, но
|
|
173
|
+
собственного AI.md не имеет): читает открытость из `DatePickerExtendedContext`,
|
|
174
|
+
переключает её по клику и Enter/Space, рендерит `ChipClearButton` либо
|
|
175
|
+
`ChipDropdownArrow` в `postfix`
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Stories
|
|
180
|
+
|
|
181
|
+
Основные истории: `stories/Chips/ChipMonthYearPicker.stories.tsx`
|
|
182
|
+
Файлы примеров: `stories/Chips/examples/ChipMonthYearPicker/`
|
|
183
|
+
|
|
184
|
+
| Story | Example file | Что демонстрирует |
|
|
185
|
+
|---|---|---|
|
|
186
|
+
| `Playground` | `PlaygroundExample.tsx` | Интерактивный контроль `type`, `size`, `label`, `placeholder`, `displayedValue`, `disabled` |
|
|
187
|
+
| `Default` | `DefaultExample.tsx` | Базовое управляемое использование: `value` + `onChange` + `aria-label` кнопки очистки |
|
|
188
|
+
| `Types` | `TypesExample.tsx` | `TYPE_1` и `TYPE_2` |
|
|
189
|
+
| `Sizes` | `SizesExample.tsx` | Размеры SM / MD / LG |
|
|
190
|
+
| `WithCustomDisplayedValue` | `WithCustomDisplayedValueExample.tsx` | Подмена отображаемого значения через `displayedValue` |
|
|
191
|
+
| `VisualTests` | `VisualTestsExample.tsx` | Скриншот-регрессия: три размера с выбранным значением, у последнего открыт календарь |
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## История изменений
|
|
196
|
+
|
|
197
|
+
| Дата | Изменение |
|
|
198
|
+
|---|---|
|
|
199
|
+
| 2026-09-07 | Создан компонент и документ (AI-Ready Phase 1) |
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Примеры использования
|
|
204
|
+
|
|
205
|
+
### Default
|
|
206
|
+
|
|
207
|
+
`stories/Chips/examples/ChipMonthYearPicker/DefaultExample.tsx`
|
|
208
|
+
|
|
209
|
+
```tsx
|
|
210
|
+
import React, { useState } from "react";
|
|
211
|
+
import { ChipMonthYearPicker, EComponentSize, EDropdownAlignment } from "@sberbusiness/triplex-next";
|
|
212
|
+
|
|
213
|
+
export const DefaultExample = () => {
|
|
214
|
+
const [value, setValue] = useState("");
|
|
215
|
+
return (
|
|
216
|
+
<ChipMonthYearPicker
|
|
217
|
+
value={value}
|
|
218
|
+
label="MonthYear label"
|
|
219
|
+
placeholder="Select to proceed"
|
|
220
|
+
onChange={setValue}
|
|
221
|
+
alignment={EDropdownAlignment.LEFT}
|
|
222
|
+
size={EComponentSize.MD}
|
|
223
|
+
clearButtonProps={{ "aria-label": "Очистить" }}
|
|
224
|
+
/>
|
|
225
|
+
);
|
|
226
|
+
};
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Types
|
|
230
|
+
|
|
231
|
+
`stories/Chips/examples/ChipMonthYearPicker/TypesExample.tsx`
|
|
232
|
+
|
|
233
|
+
```tsx
|
|
234
|
+
import React, { useState } from "react";
|
|
235
|
+
import { ChipMonthYearPicker, EChipType, EDropdownAlignment } from "@sberbusiness/triplex-next";
|
|
236
|
+
|
|
237
|
+
type TypeItemProps = {
|
|
238
|
+
type: EChipType;
|
|
239
|
+
label: string;
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
const TypeItem = ({ type, label }: TypeItemProps) => {
|
|
243
|
+
const [value, setValue] = useState("");
|
|
244
|
+
|
|
245
|
+
return (
|
|
246
|
+
<div>
|
|
247
|
+
<div style={{ marginBottom: 8, fontSize: 16, fontWeight: 700 }}>{label}</div>
|
|
248
|
+
<ChipMonthYearPicker
|
|
249
|
+
value={value}
|
|
250
|
+
label="MonthYear label"
|
|
251
|
+
placeholder="Select to proceed"
|
|
252
|
+
clearButtonProps={{ "aria-label": "Очистить" }}
|
|
253
|
+
type={type}
|
|
254
|
+
alignment={EDropdownAlignment.LEFT}
|
|
255
|
+
onChange={setValue}
|
|
256
|
+
/>
|
|
257
|
+
</div>
|
|
258
|
+
);
|
|
259
|
+
};
|
|
260
|
+
|
|
261
|
+
const typeOptions = Object.values(EChipType).map((type) => ({
|
|
262
|
+
value: type,
|
|
263
|
+
label: type.toUpperCase(),
|
|
264
|
+
}));
|
|
265
|
+
|
|
266
|
+
export const TypesExample = () => (
|
|
267
|
+
<div style={{ display: "flex", flexDirection: "column", gap: 12 }}>
|
|
268
|
+
{typeOptions.map(({ value, label }) => (
|
|
269
|
+
<TypeItem key={value} type={value} label={label} />
|
|
270
|
+
))}
|
|
271
|
+
</div>
|
|
272
|
+
);
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### Sizes
|
|
276
|
+
|
|
277
|
+
`stories/Chips/examples/ChipMonthYearPicker/SizesExample.tsx`
|
|
278
|
+
|
|
279
|
+
```tsx
|
|
280
|
+
import React, { useState } from "react";
|
|
281
|
+
import { ChipMonthYearPicker, EComponentSize, EDropdownAlignment } from "@sberbusiness/triplex-next";
|
|
282
|
+
|
|
283
|
+
type SizeItemProps = {
|
|
284
|
+
size: EComponentSize;
|
|
285
|
+
label: string;
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
const SizeItem = ({ size, label }: SizeItemProps) => {
|
|
289
|
+
const [value, setValue] = useState("");
|
|
290
|
+
|
|
291
|
+
return (
|
|
292
|
+
<div>
|
|
293
|
+
<div style={{ marginBottom: 8, fontSize: 16, fontWeight: 700 }}>{label}</div>
|
|
294
|
+
<ChipMonthYearPicker
|
|
295
|
+
size={size}
|
|
296
|
+
alignment={EDropdownAlignment.LEFT}
|
|
297
|
+
value={value}
|
|
298
|
+
label="MonthYear label"
|
|
299
|
+
placeholder="Select to proceed"
|
|
300
|
+
clearButtonProps={{ "aria-label": "Очистить" }}
|
|
301
|
+
onChange={setValue}
|
|
302
|
+
/>
|
|
303
|
+
</div>
|
|
304
|
+
);
|
|
305
|
+
};
|
|
306
|
+
|
|
307
|
+
const sizeOptions = Object.values(EComponentSize).map((size) => ({
|
|
308
|
+
value: size,
|
|
309
|
+
label: size.toUpperCase(),
|
|
310
|
+
}));
|
|
311
|
+
|
|
312
|
+
export const SizesExample = () => (
|
|
313
|
+
<div style={{ display: "flex", flexDirection: "column", gap: 12 }}>
|
|
314
|
+
{sizeOptions.map(({ value, label }) => (
|
|
315
|
+
<SizeItem key={value} size={value} label={label} />
|
|
316
|
+
))}
|
|
317
|
+
</div>
|
|
318
|
+
);
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### WithCustomDisplayedValue
|
|
322
|
+
|
|
323
|
+
`stories/Chips/examples/ChipMonthYearPicker/WithCustomDisplayedValueExample.tsx`
|
|
324
|
+
|
|
325
|
+
```tsx
|
|
326
|
+
import React, { useState } from "react";
|
|
327
|
+
import { ChipMonthYearPicker, EComponentSize, EDropdownAlignment } from "@sberbusiness/triplex-next";
|
|
328
|
+
|
|
329
|
+
export const WithCustomDisplayedValueExample = () => {
|
|
330
|
+
const [value, setValue] = useState("19700101");
|
|
331
|
+
return (
|
|
332
|
+
<ChipMonthYearPicker
|
|
333
|
+
value={value}
|
|
334
|
+
label="MonthYear label"
|
|
335
|
+
placeholder="Select to proceed"
|
|
336
|
+
onChange={setValue}
|
|
337
|
+
alignment={EDropdownAlignment.LEFT}
|
|
338
|
+
size={EComponentSize.MD}
|
|
339
|
+
displayedValue="MonthYear value"
|
|
340
|
+
/>
|
|
341
|
+
);
|
|
342
|
+
};
|
|
343
|
+
```
|
|
344
|
+
|