@sberbusiness/triplex-next-mcp-server 0.36.0-beta0 → 1.41.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 (46) hide show
  1. package/bundle/components/AlertContext.md +268 -0
  2. package/bundle/components/Button.md +5 -2
  3. package/bundle/components/ButtonDropdown.md +9 -1
  4. package/bundle/components/ButtonDropdownExtended.md +422 -0
  5. package/bundle/components/ButtonIcon.md +7 -1
  6. package/bundle/components/Calendar.md +183 -368
  7. package/bundle/components/Caption.md +291 -0
  8. package/bundle/components/Chip.md +310 -314
  9. package/bundle/components/CodeText.md +197 -0
  10. package/bundle/components/Col.md +311 -162
  11. package/bundle/components/CollapsibleTree.md +6 -3
  12. package/bundle/components/CollapsibleTreeExtended.md +6 -2
  13. package/bundle/components/Dropdown.md +748 -346
  14. package/bundle/components/FormField.md +468 -232
  15. package/bundle/components/IconWrapper.md +142 -89
  16. package/bundle/components/Island.md +221 -129
  17. package/bundle/components/KeyDownListener.md +215 -102
  18. package/bundle/components/LightBox.md +2252 -233
  19. package/bundle/components/List.md +26 -1
  20. package/bundle/components/ListActionItem.md +157 -0
  21. package/bundle/components/ListItem.md +34 -9
  22. package/bundle/components/ListItemSelectable.md +2 -2
  23. package/bundle/components/ListMaster.md +4 -5
  24. package/bundle/components/ListTableItem.md +391 -0
  25. package/bundle/components/LoaderMiddle.md +265 -0
  26. package/bundle/components/LoaderScreen.md +178 -81
  27. package/bundle/components/Notification.md +21 -21
  28. package/bundle/components/Page.md +1 -0
  29. package/bundle/components/Portal.md +131 -67
  30. package/bundle/components/Row.md +171 -69
  31. package/bundle/components/Text.md +320 -0
  32. package/bundle/components/TextField.md +364 -97
  33. package/bundle/components/ThemeProvider.md +305 -117
  34. package/bundle/components/Title.md +296 -0
  35. package/bundle/components/Tooltip.md +421 -181
  36. package/bundle/guides/commits.md +126 -24
  37. package/bundle/guides/context.md +1 -1
  38. package/bundle/guides/tests.md +42 -0
  39. package/bundle/manifest.json +109 -23
  40. package/bundle/release-notes/1.37.0.mdx +42 -1
  41. package/bundle/release-notes/1.38.0.mdx +36 -0
  42. package/bundle/release-notes/1.39.0.mdx +66 -0
  43. package/bundle/release-notes/1.40.0.mdx +27 -0
  44. package/bundle/release-notes/1.41.0.mdx +83 -0
  45. package/bundle/release-notes/1.42.0.mdx +7 -0
  46. package/package.json +1 -1
@@ -0,0 +1,291 @@
1
+ ---
2
+ component: Caption
3
+ category: Typography
4
+ related: [Text, Title, CodeText]
5
+ tokens:
6
+ - --triplex-next-Typography-Primary_Color
7
+ - --triplex-next-Typography-PrimaryInvert_Color
8
+ - --triplex-next-Typography-Complementary_Color
9
+ - --triplex-next-Typography-ComplementaryInvert_Color
10
+ - --triplex-next-Typography-Secondary_Color
11
+ - --triplex-next-Typography-SecondaryInvert_Color
12
+ - --triplex-next-Typography-Tertiary_Color
13
+ - --triplex-next-Typography-TertiaryInvert_Color
14
+ - --triplex-next-Typography-Disabled_Color
15
+ - --triplex-next-Typography-DisabledInvert_Color
16
+ - --triplex-next-Typography-Brand_Color
17
+ - --triplex-next-Typography-BrandInvert_Color
18
+ - --triplex-next-Typography-Info_Color
19
+ - --triplex-next-Typography-InfoInvert_Color
20
+ - --triplex-next-Typography-Success_Color
21
+ - --triplex-next-Typography-SuccessInvert_Color
22
+ - --triplex-next-Typography-Warning_Color
23
+ - --triplex-next-Typography-WarningInvert_Color
24
+ - --triplex-next-Typography-Error_Color
25
+ - --triplex-next-Typography-ErrorInvert_Color
26
+ - --triplex-next-Typography-System_Color
27
+ - --triplex-next-Typography-SystemInvert_Color
28
+ stories: stories/Typography/Caption.stories.tsx
29
+ version: "1.0"
30
+ ---
31
+
32
+ # Caption
33
+
34
+ ## Назначение
35
+
36
+ Подпись (типографика). Рендерит инлайновый `<span>` (тег настраивается через `tag`) для крайних значений типографической шкалы: очень мелкие подписи `C1` (10px) и `C2` (8px) либо крупный акцентный показатель `D1` (32px, шрифт SBSansDisplay).
37
+
38
+ Используй когда: нужна сверхмелкая техническая подпись (сноска, копирайт, метка) или крупная цифра/показатель, не являющаяся заголовком (сумма на дашборде, KPI).
39
+
40
+ Не используй когда:
41
+ - Нужен обычный текст 12–18px — используй `Text` (B1–B4).
42
+ - Крупный текст является заголовком секции — используй `Title` (семантические `h1`–`h3`).
43
+
44
+ ---
45
+
46
+ ## Варианты и props
47
+
48
+ ### Обязательные props
49
+
50
+ | Prop | Тип | Описание |
51
+ |---|---|---|
52
+ | `size` | `ECaptionSize` | Размер: `C1` (10/12px), `C2` (8/10px), `D1` (32/40px). В скобках — font-size/line-height. |
53
+
54
+ ### Опциональные props
55
+
56
+ | Prop | Тип | По умолчанию | Описание |
57
+ |---|---|---|---|
58
+ | `weight` | `EFontWeightCaption` | `REGULAR` | Начертание: `REGULAR` или `SEMIBOLD` (600). Для `C1`/`C2` — семейство SBSansText*, для `D1` — SBSansDisplay*. |
59
+ | `type` | `EFontType` | `PRIMARY` | Цвет текста из общей палитры типографики (11 базовых + 11 `*_INVERT`). |
60
+ | `underline` | `boolean` | — | Подчёркивание. Совместим со `strikethrough` (оба сразу — `underline line-through`). |
61
+ | `strikethrough` | `boolean` | — | Зачёркивание. |
62
+ | `tag` | `string` | `"span"` | HTML-тег корневого элемента. |
63
+
64
+ Компонент типизирован как `TCaptionProps<T extends keyof JSX.IntrinsicElements>` и принимает все атрибуты соответствующего HTML-элемента через spread.
65
+
66
+ ### Ограничения
67
+
68
+ - Внешний тип `forwardRef<HTMLElement, TCaptionProps<keyof JSX.IntrinsicElements>>` «растворяет» дженерик: TypeScript не сужает атрибуты под конкретный `tag`. Известное ограничение публичного API, не исправлять без обсуждения (breaking).
69
+ - `EFontWeightCaption` дублирует значения `EFontWeightText` — это два независимых публичных enum, объединять нельзя (breaking).
70
+ - `EFontType.BRAND` дополнительно задаёт `user-select: none` (особенность стилей `Typography.module.less`).
71
+
72
+ ---
73
+
74
+ ## Дизайн-токены
75
+
76
+ Цвета — общие CSS-переменные семейства Typography (см. frontmatter): `--triplex-next-Typography-{Type}_Color` и `--triplex-next-Typography-{Type}Invert_Color`.
77
+
78
+ Размеры шрифта и line-height — фиксированные пиксельные значения в `styles/Caption.module.less` (токенов для них нет).
79
+
80
+ ---
81
+
82
+ ## Инварианты
83
+
84
+ - **`forwardRef`** — обязателен, `ref` пробрасывается на корневой элемент.
85
+ - **Значения enum** `ECaptionSize`, `EFontWeightCaption`, `EFontType` — публичный API из barrel. Изменение — breaking change.
86
+ - **`TCaptionProps`**, **`ITypographyProps`** — публичные типы.
87
+ - **`displayName = "Caption"`** — не убирать.
88
+ - `D1` переключает семейство шрифта на SBSansDisplay* — контракт стилей: крупный показатель визуально согласован с заголовками.
89
+ - Классы собираются только через `clsx`.
90
+
91
+ ---
92
+
93
+ ## Accessibility
94
+
95
+ - Компонент не интерактивный: focus management и keyboard navigation не применимы.
96
+ - Семантика определяется через `tag` (по умолчанию нейтральный `<span>`).
97
+ - Размеры `C1`/`C2` (10/8px) ниже комфортного порога читаемости — используй только для второстепенной информации, не для основного контента.
98
+ - Цвет (`type`) не передаёт семантику для screen reader'ов.
99
+
100
+ ---
101
+
102
+ ## Связанные компоненты
103
+
104
+ - `Text` — основной текст интерфейса (B1–B4).
105
+ - `Title` — заголовки `h1`–`h3`.
106
+ - `CodeText` — моноширинный текст.
107
+
108
+ ---
109
+
110
+ ## Stories
111
+
112
+ Основные истории: `stories/Typography/Caption.stories.tsx`
113
+ Файлы примеров: `stories/Typography/examples/Caption/`
114
+
115
+ | Story | Example file | Что демонстрирует |
116
+ |---|---|---|
117
+ | `Playground` | `Playground.tsx` | Интерактивный контроль props `size`, `weight`, `type`, `tag`, `underline`, `strikethrough` |
118
+ | `Default` | `Default.tsx` | Минимальное использование |
119
+ | `Sizes` | `Sizes.tsx` | Размеры C1 / C2 / D1 |
120
+ | `Weights` | `Weights.tsx` | Начертания REGULAR / SEMIBOLD |
121
+ | `Types` | `Types.tsx` | Все значения `EFontType`: базовые + инвертированные на тёмной подложке |
122
+ | `Decorations` | `Decorations.tsx` | `underline`, `strikethrough` и их комбинация |
123
+
124
+ ---
125
+
126
+ ## История изменений
127
+
128
+ | Дата | Изменение |
129
+ |---|---|
130
+ | 2026-07-20 | Создан документ. AI-рефакторинг: decoration-логика вынесена во внутренний хелпер `getTextDecorationClassName` (`utils.ts`), комментарии переведены в JSDoc, unit-тесты расширены (все значения `ECaptionSize`/`EFontWeightCaption`, дефолты). Stories переведены на modern pattern (`examples/Caption/`). |
131
+
132
+ ---
133
+
134
+ ## Примеры использования
135
+
136
+ ### Default
137
+
138
+ `stories/Typography/examples/Caption/Default.tsx`
139
+
140
+ ```tsx
141
+ import React from "react";
142
+ import { Caption, ECaptionSize } from "@sberbusiness/triplex-next";
143
+
144
+ export const Default = () => <Caption size={ECaptionSize.C1}>Вспомогательная подпись</Caption>;
145
+ ```
146
+
147
+ ### Sizes
148
+
149
+ `stories/Typography/examples/Caption/Sizes.tsx`
150
+
151
+ ```tsx
152
+ import React from "react";
153
+ import { Caption, ECaptionSize } from "@sberbusiness/triplex-next";
154
+
155
+ export const Sizes = () => (
156
+ <div style={{ display: "flex", flexDirection: "column", gap: "16px" }}>
157
+ <Caption size={ECaptionSize.C1}>C1 - Подпись малого размера (10px)</Caption>
158
+ <Caption size={ECaptionSize.C2}>C2 - Подпись очень малого размера (8px)</Caption>
159
+ <Caption size={ECaptionSize.D1}>D1 - Подпись большого размера (32px)</Caption>
160
+ </div>
161
+ );
162
+ ```
163
+
164
+ ### Weights
165
+
166
+ `stories/Typography/examples/Caption/Weights.tsx`
167
+
168
+ ```tsx
169
+ import React from "react";
170
+ import { Caption, ECaptionSize, EFontWeightCaption } from "@sberbusiness/triplex-next";
171
+
172
+ export const Weights = () => (
173
+ <div style={{ display: "flex", flexDirection: "column", gap: "16px" }}>
174
+ <Caption size={ECaptionSize.C1} weight={EFontWeightCaption.REGULAR}>
175
+ Regular - Обычный вес подписи
176
+ </Caption>
177
+ <Caption size={ECaptionSize.C1} weight={EFontWeightCaption.SEMIBOLD}>
178
+ Semibold - Полужирная подпись
179
+ </Caption>
180
+ </div>
181
+ );
182
+ ```
183
+
184
+ ### Types
185
+
186
+ `stories/Typography/examples/Caption/Types.tsx`
187
+
188
+ ```tsx
189
+ import React from "react";
190
+ import { Caption, ECaptionSize, EFontType } from "@sberbusiness/triplex-next";
191
+
192
+ export const Types = () => (
193
+ <div style={{ display: "flex", gap: "16px" }}>
194
+ <div style={{ display: "flex", flexDirection: "column", gap: "16px" }}>
195
+ <Caption size={ECaptionSize.C1} type={EFontType.PRIMARY}>
196
+ Primary
197
+ </Caption>
198
+ <Caption size={ECaptionSize.C1} type={EFontType.COMPLEMENTARY}>
199
+ Complementary
200
+ </Caption>
201
+ <Caption size={ECaptionSize.C1} type={EFontType.SECONDARY}>
202
+ Secondary
203
+ </Caption>
204
+ <Caption size={ECaptionSize.C1} type={EFontType.TERTIARY}>
205
+ Tertiary
206
+ </Caption>
207
+ <Caption size={ECaptionSize.C1} type={EFontType.BRAND}>
208
+ Brand
209
+ </Caption>
210
+ <Caption size={ECaptionSize.C1} type={EFontType.INFO}>
211
+ Info
212
+ </Caption>
213
+ <Caption size={ECaptionSize.C1} type={EFontType.SUCCESS}>
214
+ Success
215
+ </Caption>
216
+ <Caption size={ECaptionSize.C1} type={EFontType.WARNING}>
217
+ Warning
218
+ </Caption>
219
+ <Caption size={ECaptionSize.C1} type={EFontType.ERROR}>
220
+ Error
221
+ </Caption>
222
+ <Caption size={ECaptionSize.C1} type={EFontType.DISABLED}>
223
+ Disabled
224
+ </Caption>
225
+ <Caption size={ECaptionSize.C1} type={EFontType.SYSTEM}>
226
+ System
227
+ </Caption>
228
+ </div>
229
+ <div style={{ display: "flex", flexDirection: "column", gap: "16px", backgroundColor: "#1F1F22" }}>
230
+ <Caption size={ECaptionSize.C1} type={EFontType.PRIMARY_INVERT}>
231
+ Primary Invert
232
+ </Caption>
233
+ <Caption size={ECaptionSize.C1} type={EFontType.COMPLEMENTARY_INVERT}>
234
+ Complementary Invert
235
+ </Caption>
236
+ <Caption size={ECaptionSize.C1} type={EFontType.SECONDARY_INVERT}>
237
+ Secondary Invert
238
+ </Caption>
239
+ <Caption size={ECaptionSize.C1} type={EFontType.TERTIARY_INVERT}>
240
+ Tertiary Invert
241
+ </Caption>
242
+ <Caption size={ECaptionSize.C1} type={EFontType.BRAND_INVERT}>
243
+ Brand Invert
244
+ </Caption>
245
+ <Caption size={ECaptionSize.C1} type={EFontType.INFO_INVERT}>
246
+ Info Invert
247
+ </Caption>
248
+ <Caption size={ECaptionSize.C1} type={EFontType.SUCCESS_INVERT}>
249
+ Success Invert
250
+ </Caption>
251
+ <Caption size={ECaptionSize.C1} type={EFontType.WARNING_INVERT}>
252
+ Warning Invert
253
+ </Caption>
254
+ <Caption size={ECaptionSize.C1} type={EFontType.ERROR_INVERT}>
255
+ Error Invert
256
+ </Caption>
257
+ <Caption size={ECaptionSize.C1} type={EFontType.DISABLED_INVERT}>
258
+ Disabled Invert
259
+ </Caption>
260
+ <Caption size={ECaptionSize.C1} type={EFontType.SYSTEM_INVERT}>
261
+ System Invert
262
+ </Caption>
263
+ </div>
264
+ </div>
265
+ );
266
+ ```
267
+
268
+ ### Decorations
269
+
270
+ `stories/Typography/examples/Caption/Decorations.tsx`
271
+
272
+ ```tsx
273
+ import React from "react";
274
+ import { Caption, ECaptionSize } from "@sberbusiness/triplex-next";
275
+
276
+ export const Decorations = () => (
277
+ <div style={{ display: "flex", flexDirection: "column", gap: "16px" }}>
278
+ <Caption size={ECaptionSize.C1}>Подпись без декораций</Caption>
279
+ <Caption size={ECaptionSize.C1} underline>
280
+ Подпись с подчеркиванием
281
+ </Caption>
282
+ <Caption size={ECaptionSize.C1} strikethrough>
283
+ Подпись с зачеркиванием
284
+ </Caption>
285
+ <Caption size={ECaptionSize.C1} underline strikethrough>
286
+ Подпись с подчеркиванием и зачеркиванием
287
+ </Caption>
288
+ </div>
289
+ );
290
+ ```
291
+