@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.
Files changed (60) hide show
  1. package/README.md +7 -7
  2. package/bundle/components/AmountField.md +222 -323
  3. package/bundle/components/Avatar.md +138 -146
  4. package/bundle/components/CardAction.md +615 -0
  5. package/bundle/components/CardStatic.md +402 -0
  6. package/bundle/components/CheckboxTree.md +157 -215
  7. package/bundle/components/CheckboxTreeExtended.md +7 -7
  8. package/bundle/components/Chip.md +7 -6
  9. package/bundle/components/ChipGroup.md +1 -1
  10. package/bundle/components/ChipMonthYearPicker.md +344 -0
  11. package/bundle/components/ChipMultiselect.md +1251 -0
  12. package/bundle/components/ChipOptions.md +329 -0
  13. package/bundle/components/ChipSort.md +333 -0
  14. package/bundle/components/ChipSuggest.md +588 -0
  15. package/bundle/components/CollapsibleTree.md +8 -4
  16. package/bundle/components/CollapsibleTreeExtended.md +8 -6
  17. package/bundle/components/Confirm.md +346 -281
  18. package/bundle/components/DateField.md +222 -303
  19. package/bundle/components/DatePickerExtended.md +3 -1
  20. package/bundle/components/DateRange.md +351 -210
  21. package/bundle/components/FooterPage.md +1 -0
  22. package/bundle/components/FormField.md +14 -5
  23. package/bundle/components/FormGroup.md +3 -2
  24. package/bundle/components/HelpBox.md +7 -1
  25. package/bundle/components/IslandAccordion.md +443 -152
  26. package/bundle/components/IslandWidget.md +622 -157
  27. package/bundle/components/LightBox.md +8 -0
  28. package/bundle/components/ListMaster.md +2 -2
  29. package/bundle/components/ListTableItem.md +6 -6
  30. package/bundle/components/MaskedField.md +2 -1
  31. package/bundle/components/MonthYearField.md +18 -5
  32. package/bundle/components/Slider.md +389 -97
  33. package/bundle/components/SliderRange.md +486 -105
  34. package/bundle/components/StatusTracker.md +386 -94
  35. package/bundle/components/Stepper.md +355 -102
  36. package/bundle/components/StepperExtended.md +633 -0
  37. package/bundle/components/SuggestField.md +1049 -96
  38. package/bundle/components/SwipeableArea.md +7 -7
  39. package/bundle/components/Tabs.md +265 -92
  40. package/bundle/components/TabsExtended.md +18 -18
  41. package/bundle/components/TabsLine.md +301 -127
  42. package/bundle/components/TagColor.md +187 -66
  43. package/bundle/components/TagGroup.md +184 -48
  44. package/bundle/components/TextareaField.md +278 -70
  45. package/bundle/components/TopOverlay.md +17 -1
  46. package/bundle/components/TreeView.md +16 -7
  47. package/bundle/components/TriggerClickOnKeyDownEvent.md +277 -0
  48. package/bundle/components/UploadZone.md +318 -0
  49. package/bundle/guides/codestyle.md +16 -1
  50. package/bundle/guides/commits.md +47 -1
  51. package/bundle/guides/tests.md +23 -2
  52. package/bundle/manifest.json +92 -24
  53. package/bundle/release-notes/1.46.0.mdx +59 -0
  54. package/bundle/release-notes/1.47.0.mdx +122 -0
  55. package/bundle/release-notes/1.48.0.mdx +68 -0
  56. package/bundle/release-notes/1.49.0.mdx +7 -0
  57. package/bundle/tokens.json +3 -3
  58. package/dist/index.js +220 -6
  59. package/dist/index.js.map +1 -1
  60. package/package.json +1 -1
@@ -1,11 +1,9 @@
1
1
  ---
2
2
  component: Avatar
3
- category: Avatars
4
- figma-node: ""
5
- figma-file: ""
6
- related: [Badge, IconWrapper]
3
+ category: Avatar
4
+ related: []
7
5
  tokens:
8
- - --triplex-next-Avatar-Background
6
+ - Avatar.Background
9
7
  stories: stories/Avatar/Avatar.stories.tsx
10
8
  version: "1.0"
11
9
  ---
@@ -14,191 +12,162 @@ version: "1.0"
14
12
 
15
13
  ## Назначение
16
14
 
17
- Контейнер-"плитка" для представления пользовательской идентичности: картинки
18
- профиля, инициалов, иконки или любого другого ReactNode. Задаёт квадратные
19
- размеры, скруглённые углы и фоновый цвет. Сам по себе никакого контента не
20
- рендерит — только обёртка со стилями; визуальное наполнение — через children.
15
+ Квадратный контейнер фиксированного размера со скруглением и фоном-подложкой —
16
+ визуальное представление пользователя, организации или сущности. Собственного
17
+ содержимого не рисует: изображение, инициалы или иконка передаются потребителем.
21
18
 
22
- Размер шкалы (XXS → XXL) покрывает от маленькой иконки в списке до большого
23
- hero-аватара в профиле.
24
-
25
- Используй когда: нужно представить пользователя/сущность в виде стандартного
26
- квадратного блока с картинкой или инициалами.
27
- Не используй когда: нужен только круглый avatar — в этой реализации формы
28
- фиксированы (squircle с разными radius), круг не предусмотрен. Если нужны
29
- инициалы с авто-генерацией — это задача потребителя, компонент не рендерит текст.
30
-
31
- ---
32
-
33
- ## Файловая структура
34
-
35
- ```text
36
- src/components/Avatar/
37
- ├── Avatar.tsx # React.forwardRef, минимальная обёртка
38
- ├── enums.ts # EAvatarSize (XXS, XS, SM, MD, LG, XL, XXL)
39
- ├── types.ts # IAvatarProps
40
- ├── index.ts # Barrel: enums + types + Avatar
41
- ├── styles/Avatar.module.less # Размеры + border-radius + фон
42
- └── __tests__/Avatar.test.tsx
43
- ```
44
-
45
- Особенности:
46
- - **Типы и enum вынесены в отдельные файлы** (`types.ts`, `enums.ts`) —
47
- это паттерн более крупных компонентов, здесь избыточен, но сохранён для
48
- единообразия. Не сводить в один файл без общего рефакторинга стайл-гайда.
49
- - **Нет helpers, нет subcomponents** — компонент максимально тонкий.
19
+ Используй когда: нужно показать изображение профиля, инициалы или иконку в
20
+ одном из семи типовых размеров — в шапке, в карточке, в списке, рядом с именем.
21
+ Не используй когда: нужен произвольный размер или неквадратная форма —
22
+ `Avatar` жёстко задаёт `width`/`height` и не тянется по содержимому;
23
+ нужна кликабельность или состояние выбора — оберни `Avatar` в интерактивный
24
+ компонент, сам он остаётся неинтерактивным `<div>`.
50
25
 
51
26
  ---
52
27
 
53
28
  ## Варианты и props
54
29
 
55
- ### `IAvatarProps extends React.HTMLAttributes<HTMLDivElement>`
30
+ Оба собственных props — **обязательные**, значений по умолчанию нет: размер и
31
+ скругление всегда задаёт потребитель явно.
56
32
 
57
- | Prop | Тип | Обязателен | Описание |
58
- |---|---|---|---|
59
- | `size` | `EAvatarSize` | **Да** | Размер + скругление углов. Нет значения по умолчанию — потребитель обязан указать. |
60
- | `children` | `React.ReactNode` | Нет | Содержимое (через `...HTMLAttributes`). Обычно `<img>`, `<svg>`, `<Text>` или их комбинация. Overflow скрывается (`overflow: hidden`) — контент обрезается по форме. |
61
- | `className` | `string` | Нет | Объединяется с `styles.avatar + sizeClass` через `clsx`. |
62
- | `...HTMLDivAttributes` | — | — | Все стандартные атрибуты `<div>`, включая `onClick`, `role`, `aria-*`, `style`. |
33
+ ### Обязательные props
63
34
 
64
- ### `EAvatarSize` — полная шкала
65
-
66
- | Значение | Width/Height | Border-radius |
35
+ | Prop | Тип | Описание |
67
36
  |---|---|---|
68
- | `XXS` | 28px | 6px |
69
- | `XS` | 32px | 8px |
70
- | `SM` | 40px | 10px |
71
- | `MD` | 56px | 16px |
72
- | `LG` | 80px | 20px |
73
- | `XL` | 96px | 24px |
74
- | `XXL` | 128px | 28px |
75
-
76
- Радиусы непропорциональны размеру (MD=56px с radius=16px ≈ 28%, XXL=128px с
77
- radius=28px ≈ 22%). Это **дизайн-решение**, а не формула — не пересчитывать.
78
- Уменьшение относительного радиуса на больших размерах даёт более "квадратный"
79
- squircle-вид на крупных аватарах.
37
+ | `size` | `EAvatarSize` | Размер стороны квадрата |
38
+ | `borderRadius` | `TAvatarBorderRadius` | Радиус скругления, px |
80
39
 
81
- ---
40
+ ### Размеры (`EAvatarSize`)
82
41
 
83
- ## Ключевые особенности реализации
42
+ | Значение | Сторона |
43
+ |---|---|
44
+ | `XXS` | 28px |
45
+ | `XS` | 32px |
46
+ | `SM` | 40px |
47
+ | `MD` | 56px |
48
+ | `LG` | 80px |
49
+ | `XL` | 96px |
50
+ | `XXL` | 128px |
84
51
 
85
- ### flex-центрирование контента
52
+ Ширина и высота равны — компонент всегда квадратный, содержимое центрируется
53
+ по обеим осям через `flex`.
86
54
 
87
- ```less
88
- .avatar {
89
- display: flex;
90
- align-items: center;
91
- justify-content: center;
92
- overflow: hidden;
93
- }
94
- ```
55
+ ### Радиус скругления (`TAvatarBorderRadius`)
95
56
 
96
- Любой children центрируется автоматически. Для `<img>` потребитель обычно задаёт
97
- `width: 100%; height: 100%; object-fit: cover;` чтобы заполнить всю область —
98
- compon компонент не делает этого сам, намеренно: потребитель может показать
99
- маленькую иконку по центру, а не растянутое изображение.
57
+ Union числовых литералов `6 | 8 | 10 | 12 | 16`, а не enum: значение
58
+ передаётся числом (`borderRadius={12}`). Произвольные радиусы не поддерживаются —
59
+ каждому значению соответствует отдельный CSS-класс. Сочетание размера и радиуса
60
+ ничем не ограничено: любой `borderRadius` допустим с любым `size`.
100
61
 
101
- ### `overflow: hidden` обрезает по форме
62
+ ### Остальные props
102
63
 
103
- Любой child обрезается по squircle-границам. Это ключевое свойство — картинка
104
- автоматически получает скруглённые углы без собственного `border-radius`.
64
+ `IAvatarProps` расширяет `React.HTMLAttributes<HTMLDivElement>`: `className`,
65
+ `style`, `children`, `aria-*`, `data-*` и обработчики событий проходят на
66
+ корневой `<div>` как есть. Собственных обработчиков у компонента нет, поэтому
67
+ переданные ни с чем не конкурируют.
105
68
 
106
- ### `sizeToClassNameMap` — прямой маппинг enum → className
69
+ ### Как задаётся содержимое
107
70
 
108
- ```ts
109
- const sizeToClassNameMap = {
110
- [EAvatarSize.XXS]: styles.xxs,
111
- // ...
112
- };
113
- ```
71
+ Компонент — только оболочка, способ наполнения выбирает потребитель:
72
+
73
+ - **Изображение** — фоном через `style`/`className`
74
+ (`backgroundImage` + `backgroundSize`), см. story `Example`. Корневой элемент
75
+ имеет `overflow: hidden`, поэтому содержимое обрезается по радиусу скругления.
76
+ - **Инициалы** — текстовым компонентом в `children` (в примере — `Title`).
77
+ - **Иконка** — иконкой из `@sberbusiness/icons-next` в `children`.
78
+
79
+ Своего состояния у компонента нет: вывод полностью определяется props.
114
80
 
115
- Объект, не функция. Полный охват всех значений enum (TypeScript проверяет через
116
- Record-тип на ключах). При добавлении нового размера — **обновлять обе точки**:
117
- enum и map.
81
+ ---
118
82
 
119
- ### Фон через CSS-переменную
83
+ ## Дизайн-токены
120
84
 
121
- `background: var(--triplex-next-Avatar-Background)` — единственный токен
122
- компонента. Фон виден, когда children прозрачен или меньше области. Потребитель
123
- может переопределить через `style` или `className` (например, для цветных
124
- avatar'ов с инициалами).
85
+ Переопределяются через `ThemeProvider` (prop `tokens`) — см. `ThemeProvider-ai.md` →
86
+ «Как переопределять токены». Значения по умолчанию — `src/components/DesignTokens/components/Avatar.ts`.
125
87
 
126
- ### `forwardRef` на `<div>`
88
+ ```text
89
+ Avatar.Background
90
+ ```
127
91
 
128
- Ref идёт на root div. Используется для анимаций, позиционирования Tooltip и т.д.
129
- Не убирать.
92
+ Токен задаёт цвет подложки, видимой, пока содержимое не перекрывает её целиком
93
+ (например, под инициалами или иконкой). Собственного цвета текста у компонента
94
+ нет — его определяет вложенный типографический компонент.
130
95
 
131
96
  ---
132
97
 
133
98
  ## Инварианты
134
99
 
135
- - **`forwardRef`** — обязателен. Не убирать.
136
- - **`size` обязателен** — не делать defaultValue, чтобы потребитель явно выбирал
137
- масштаб (избежать случайного использования мелких аватаров в hero-контексте).
138
- - **`EAvatarSize` значения** — публичное API, не переименовывать.
139
- - **Размеры и radius в LESS** — не менять без согласования с дизайнером.
140
- Значения подобраны под токены отступов сетки (28, 32, 40, 56, 80, 96, 128 —
141
- кратны 4/8).
142
- - **`overflow: hidden`** на root — не убирать, от этого зависит скругление
143
- контента.
144
- - **`background: var(--triplex-next-Avatar-Background)`** — единственный
145
- дизайн-токен, не хардкодить цвета.
146
- - **`flex` центрирование** — не менять на grid без согласования, это затрагивает
147
- все потребительские стили внутри Avatar.
148
- - **Компонент — тонкая обёртка, НЕ рендерит children-специфику** (например, не
149
- генерирует инициалы из имени). Всё — на стороне потребителя. Не усложнять.
150
- - **Типы в отдельном файле (`types.ts`)** — сохранять паттерн для консистентности
151
- с другими компонентами, даже если выглядит избыточным.
100
+ - `forwardRef` на компоненте — не убирать; ref всегда указывает на корневой `<div>`.
101
+ - `size` и `borderRadius` — обязательные props. Сделать любой из них
102
+ опциональным со значением по умолчанию — изменение публичного API.
103
+ - Значения `EAvatarSize` (`xxs`…`xxl`) — часть публичного API: строковые
104
+ значения enum видны потребителям, поэтому переименование любого из них —
105
+ ломающее изменение. Дополнительно на совпадение значений с именами
106
+ CSS-классов размеров опираются unit-тесты (`toHaveClass(size)`); сам
107
+ компонент от этого совпадения не зависит — `SIZE_TO_CLASS_NAME_MAP` в
108
+ `Avatar.tsx` сопоставляет их явно.
109
+ - `TAvatarBorderRadius` — именно union числовых литералов. Тип стирается при
110
+ компиляции, рантайм-источника правды у набора нет, поэтому расширение набора
111
+ синхронизируется вручную в шести местах: сам union в `enums.ts`, CSS-класс
112
+ `borderRadius{N}` в `styles/Avatar.module.less`,
113
+ `BORDER_RADIUS_TO_CLASS_NAME_MAP` в `Avatar.tsx`, `BORDER_RADIUSES` в
114
+ `__tests__/Avatar.test.tsx`, `argTypes.borderRadius.options` в
115
+ `stories/Avatar/Avatar.stories.tsx` и `BORDER_RADIUSES` в
116
+ `stories/Avatar/examples/BorderRadiusExample.tsx`. Последний особенно легко
117
+ пропустить: story `BorderRadius` рендерит радиусы по своему списку, поэтому
118
+ новый радиус в ней просто не появится, а visual-тест этого не заметит —
119
+ скриншот останется прежним. Набор перечислен ещё и прозой в
120
+ `docs.description` того же stories-файла — эту строку тоже нужно обновить.
121
+ - Корневой элемент — `<div>` с `overflow: hidden`; содержимое обрезается по
122
+ скруглению, на этом построен вариант с фоновым изображением.
152
123
 
153
124
  ---
154
125
 
155
126
  ## Accessibility
156
127
 
157
- - **Никаких ARIA-ролей по умолчанию** — `<div>` без роли. Если Avatar
158
- интерактивный (clickable), потребитель обязан:
159
- - Передать `role="button"` + `tabIndex={0}` + `onKeyDown` для клавиатуры.
160
- - Или обернуть в `<button>` / `<a>` (с учётом того, что Avatar — div, а div
161
- внутри button валиден, но button внутри div — нет).
162
- - **`<img>` внутри** — alt-текст задаёт потребитель. Avatar не добавляет
163
- `aria-label`, не озвучивает children.
164
- - **Инициалы как children (`<Text>`)** — screen reader прочитает их как текст.
165
- Для полного имени — потребитель может скрыть инициалы от screen reader
166
- (`aria-hidden`) и добавить `aria-label="Иван Иванов"` на Avatar.
167
-
168
- ---
169
-
170
- ## Дизайн-токены
128
+ Неинтерактивный контейнер: собственной роли, фокуса и клавиатурных обработчиков
129
+ у компонента нет, `<div>` остаётся семантически нейтральным.
171
130
 
172
- ```
173
- --triplex-next-Avatar-Background # Фон контейнера
174
- ```
131
+ Смысл содержимого описывает потребитель:
175
132
 
176
- Единственный токен. Цвет контента (иконки, текста) определяется самим
177
- контентом, не компонентом.
133
+ - Аватар несёт информацию (имя пользователя, организация) — одного `aria-label`
134
+ недостаточно: корневой `<div>` без роли попадает в `generic`, а для него
135
+ доступное имя запрещено и скринридером игнорируется. Передай роль,
136
+ поддерживающую имя, вместе с текстом — `role="img"` и `aria-label` (оба уйдут
137
+ в `...rest`) — либо продублируй смысл текстом рядом. Компонент не хардкодит
138
+ текст: библиотека мультиязычная.
139
+ - Аватар декоративен и дублирует находящийся рядом текст — скрой его от
140
+ скринридера через `aria-hidden`.
141
+ - Изображение задаётся фоном, а не `<img>`, поэтому альтернативного текста у него
142
+ нет по умолчанию — если картинка значима, подпись обязательна.
178
143
 
179
144
  ---
180
145
 
181
146
  ## Связанные компоненты
182
147
 
183
- - `Badge` (`src/components/Badge`) — часто комбинируется с Avatar (индикатор
184
- статуса / счётчика в углу). Позиционирование — задача потребителя.
185
- - `IconWrapper` (`src/components/IconWrapper`) — может быть использован внутри
186
- Avatar как children для показа иконки вместо фото.
187
- - `Text` / Typography — используется для рендера инициалов внутри Avatar.
148
+ Отдельного семейства и близких альтернатив у компонента нет — `related` пуст.
149
+
150
+ Типовые соседи в разметке (связь композиционная, не структурная): типографика
151
+ (`Title`, `Text`) для инициалов и подписи рядом с аватаром, иконки из
152
+ `@sberbusiness/icons-next` в качестве содержимого.
188
153
 
189
154
  ---
190
155
 
191
156
  ## Stories
192
157
 
193
- `stories/Avatar/Avatar.stories.tsx`
158
+ Основные истории: `stories/Avatar/Avatar.stories.tsx`
194
159
  Файлы примеров: `stories/Avatar/examples/`
195
160
 
196
161
  | Story | Example file | Что демонстрирует |
197
162
  |---|---|---|
198
- | `Playground` | `PlaygroundExample.tsx` | Интерактивный контроль `size` |
199
- | `Default` | `DefaultExample.tsx` | Базовое использование (XXL) |
200
- | `Sizes` | `SizesExample.tsx` | Все 7 размеров на одной шкале |
201
- | `Example` | `ExampleUsage.tsx` | Композиция с другими компонентами |
163
+ | `Playground` | `PlaygroundExample.tsx` | Интерактивный контроль `size` и `borderRadius` |
164
+ | `Default` | `DefaultExample.tsx` | Пустой аватар XXL со скруглением 12px — базовая подложка |
165
+ | `Sizes` | `SizesExample.tsx` | Все семь размеров от XXS до XXL с подписями |
166
+ | `BorderRadius` | `BorderRadiusExample.tsx` | Все допустимые радиусы скругления: 6 / 8 / 10 / 12 / 16 |
167
+ | `Example` | `ExampleUsage.tsx` | Три способа наполнения: фоновое изображение, инициалы через `Title`, иконка |
168
+
169
+ Имена файлов примеров (`DefaultExample.tsx`, `ExampleUsage.tsx`) — локальный
170
+ legacy-паттерн папки; новые примеры называются по имени story (`Sizes.tsx`).
202
171
 
203
172
  ---
204
173
 
@@ -206,7 +175,7 @@ Ref идёт на root div. Используется для анимаций, п
206
175
 
207
176
  | Дата | Изменение |
208
177
  |---|---|
209
- | 2026-04-18 | Создан документ |
178
+ | 2026-09-14 | Создан документ |
210
179
 
211
180
  ---
212
181
 
@@ -220,7 +189,7 @@ Ref идёт на root div. Используется для анимаций, п
220
189
  import React from "react";
221
190
  import { Avatar, EAvatarSize } from "@sberbusiness/triplex-next";
222
191
 
223
- export const DefaultExample = () => <Avatar size={EAvatarSize.XXL} />;
192
+ export const DefaultExample = () => <Avatar size={EAvatarSize.XXL} borderRadius={12} />;
224
193
  ```
225
194
 
226
195
  ### Sizes
@@ -238,7 +207,29 @@ export const SizesExample = () => (
238
207
  {SIZES.map((size) => (
239
208
  <div key={size} style={{ display: "flex", flexDirection: "column", gap: "8px" }}>
240
209
  <div style={{ marginBottom: "8px", fontSize: "16px", fontWeight: "700" }}>{size.toUpperCase()}</div>
241
- <Avatar size={size} />
210
+ <Avatar size={size} borderRadius={12} />
211
+ </div>
212
+ ))}
213
+ </div>
214
+ );
215
+ ```
216
+
217
+ ### BorderRadius
218
+
219
+ `stories/Avatar/examples/BorderRadiusExample.tsx`
220
+
221
+ ```tsx
222
+ import React from "react";
223
+ import { Avatar, EAvatarSize, TAvatarBorderRadius } from "@sberbusiness/triplex-next";
224
+
225
+ const BORDER_RADIUSES: TAvatarBorderRadius[] = [6, 8, 10, 12, 16];
226
+
227
+ export const BorderRadiusExample = () => (
228
+ <div style={{ display: "flex", flexDirection: "column", gap: "16px" }}>
229
+ {BORDER_RADIUSES.map((borderRadius) => (
230
+ <div key={borderRadius} style={{ display: "flex", flexDirection: "column", gap: "8px" }}>
231
+ <div style={{ marginBottom: "8px", fontSize: "16px", fontWeight: "700" }}>{borderRadius}</div>
232
+ <Avatar size={EAvatarSize.XXL} borderRadius={borderRadius} />
242
233
  </div>
243
234
  ))}
244
235
  </div>
@@ -265,14 +256,15 @@ export const ExampleUsage = () => (
265
256
  <div style={{ display: "flex", flexDirection: "column", gap: "16px" }}>
266
257
  <Avatar
267
258
  size={EAvatarSize.XXL}
259
+ borderRadius={12}
268
260
  style={{ backgroundImage: "url(assets/images/avatar.png)", backgroundSize: "contain" }}
269
261
  />
270
- <Avatar size={EAvatarSize.XXL} style={{ backgroundColor: "#339FF1" }}>
262
+ <Avatar size={EAvatarSize.XXL} borderRadius={12} style={{ backgroundColor: "#339FF1" }}>
271
263
  <TypographyTitle size={ETitleSize.H1} weight={EFontWeightTitle.REGULAR} type={EFontType.PRIMARY_INVERT}>
272
264
  AA
273
265
  </TypographyTitle>
274
266
  </Avatar>
275
- <Avatar size={EAvatarSize.XXL} style={{ backgroundColor: "#339FF1" }}>
267
+ <Avatar size={EAvatarSize.XXL} borderRadius={12} style={{ backgroundColor: "#339FF1" }}>
276
268
  <DefaulticonStrokePrdIcon32 paletteIndex={7} />
277
269
  </Avatar>
278
270
  </div>