@sberbusiness/triplex-next-mcp-server 1.41.0-beta → 1.42.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/AlertProcess.md +460 -0
- package/bundle/components/Amount.md +145 -169
- package/bundle/components/Badge.md +155 -219
- package/bundle/components/Body.md +108 -116
- package/bundle/components/CarouselExtended.md +355 -194
- package/bundle/components/ComposedKeyDownListener.md +323 -0
- package/bundle/components/FooterPage.md +2 -1
- package/bundle/components/HeaderPage.md +2 -1
- package/bundle/components/Island.md +100 -12
- package/bundle/components/KeyDownListener.md +11 -72
- package/bundle/components/LoaderSmall.md +230 -0
- package/bundle/components/MaskedField.md +481 -0
- package/bundle/components/MediaWidth.md +246 -108
- package/bundle/components/MobileView.md +192 -68
- package/bundle/components/ModalWindow.md +3 -1
- package/bundle/components/Page.md +3 -1
- package/bundle/components/Pagination.md +20 -0
- package/bundle/components/SelectExtendedField.md +691 -236
- package/bundle/guides/commits.md +40 -3
- package/bundle/guides/context.md +26 -0
- package/bundle/guides/stories.md +2 -0
- package/bundle/guides/template.md +1 -1
- package/bundle/manifest.json +43 -9
- package/bundle/release-notes/1.41.1.mdx +18 -0
- package/bundle/release-notes/1.42.0.mdx +81 -0
- package/bundle/release-notes/1.43.0.mdx +7 -0
- package/package.json +1 -1
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
component: Amount
|
|
3
|
-
category:
|
|
4
|
-
|
|
5
|
-
figma-file: ""
|
|
6
|
-
related: [AmountField, Typography]
|
|
3
|
+
category: Amount
|
|
4
|
+
related: [AmountField, Text, StatusTrackerSum, TableFooterSummaryAmount]
|
|
7
5
|
tokens: []
|
|
8
6
|
stories: stories/Amount/Amount.stories.tsx
|
|
9
7
|
version: "1.0"
|
|
@@ -13,208 +11,171 @@ version: "1.0"
|
|
|
13
11
|
|
|
14
12
|
## Назначение
|
|
15
13
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
Используй когда: нужно вывести сумму в
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
14
|
+
Отображение денежной суммы: строковое значение приводится к читаемому виду
|
|
15
|
+
(`8967452.31` → `8 967 452,31`) и при необходимости дополняется сокращённым обозначением
|
|
16
|
+
валюты. Компонент — inline-обёртка над `formatAmount` из `src/utils/amountUtils.ts`, без
|
|
17
|
+
внутреннего состояния и эффектов. Базового собственного оформления у него нет: цвет, размер и
|
|
18
|
+
начертание наследуются от родителя, поэтому в примерах он всегда стоит внутри `Text`.
|
|
19
|
+
Единственное исключение — `adaptive={true}`, при котором компонент применяет собственный
|
|
20
|
+
`styles.adaptive` с фиксированными `font-size` / `line-height` (см. «Как работает `adaptive`»).
|
|
21
|
+
|
|
22
|
+
Используй когда: нужно вывести сумму «только на чтение» — в карточке, таблице, заголовке,
|
|
23
|
+
подытоге.
|
|
24
|
+
|
|
25
|
+
Не используй когда:
|
|
26
|
+
- Сумму нужно вводить или редактировать — возьми `AmountField` (у него собственные парсер и
|
|
27
|
+
форматтер `AmountBaseInputParser` / `AmountBaseInputFormatter`).
|
|
28
|
+
- Нужно отформатировать число не для вывода, а для расчётов или строкового сравнения —
|
|
29
|
+
вызывай `formatAmount` / `amountComparator` из `@sberbusiness/triplex-next` напрямую, без
|
|
30
|
+
компонента. Импортируй именно с корня пакета: subpath `./utils/*` в `exports` не попадает
|
|
31
|
+
(`scripts/generate-package-json.js`), поэтому импорт из
|
|
32
|
+
`@sberbusiness/triplex-next/utils/amountUtils` у потребителя упадёт с
|
|
33
|
+
`ERR_PACKAGE_PATH_NOT_EXPORTED`.
|
|
28
34
|
|
|
29
35
|
---
|
|
30
36
|
|
|
31
|
-
##
|
|
32
|
-
|
|
33
|
-
```text
|
|
34
|
-
src/components/Amount/
|
|
35
|
-
├── Amount.tsx # React.FC, НЕ forwardRef
|
|
36
|
-
├── index.ts # Barrel export
|
|
37
|
-
├── styles/Amount.module.less # Только .adaptive класс
|
|
38
|
-
└── __tests__/Amount.test.tsx
|
|
39
|
-
```
|
|
37
|
+
## Варианты и props
|
|
40
38
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
(`DecimalComma`, `DecimalPoint`, `GroupSeparator`).
|
|
39
|
+
Компонент расширяет `React.HTMLAttributes<HTMLSpanElement>`: любой стандартный атрибут
|
|
40
|
+
`<span>` (`id`, `style`, `title`, `data-*`, обработчики) уходит на корневой элемент через
|
|
41
|
+
`...rest`.
|
|
45
42
|
|
|
46
|
-
|
|
43
|
+
### Обязательные props
|
|
47
44
|
|
|
48
|
-
|
|
45
|
+
| Prop | Тип | Описание |
|
|
46
|
+
|---|---|---|
|
|
47
|
+
| `value` | `string` | Сумма строкой. Допустимы разделитель дробной части `.` или `,`, пробелы внутри числа и ведущий знак `+` / `-` |
|
|
49
48
|
|
|
50
|
-
###
|
|
49
|
+
### Опциональные props
|
|
51
50
|
|
|
52
51
|
| Prop | Тип | По умолчанию | Описание |
|
|
53
52
|
|---|---|---|---|
|
|
54
|
-
| `
|
|
55
|
-
| `
|
|
56
|
-
| `
|
|
57
|
-
| `
|
|
58
|
-
| `
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
53
|
+
| `fractionLength` | `0 \| 1 \| 2 \| 3 \| 4` | `2` (`AmountConst.FractionLength`) | Количество знаков после запятой |
|
|
54
|
+
| `currency` | `string` | — | Сокращённое обозначение валюты, выводится после суммы через неразрывный пробел |
|
|
55
|
+
| `currencyTitle` | `string` | — | Значение атрибута `title` на элементе валюты — расшифровка кода (`RUB` → «Российские рубли») |
|
|
56
|
+
| `adaptive` | `boolean` | `false` | Уменьшает шрифт, если форматированная сумма длиннее порога |
|
|
57
|
+
| `dataTestId` | `string` | — | Префикс тестовых атрибутов дочерних элементов |
|
|
58
|
+
|
|
59
|
+
### Как обрабатывается `value`
|
|
60
|
+
|
|
61
|
+
Всю логику форматирования выполняет `formatAmount(value, fractionLength)`; компонент только
|
|
62
|
+
подменяет знак минуса (см. Accessibility). Существенные для потребителя следствия:
|
|
63
|
+
|
|
64
|
+
- **Дробная часть обрезается, а не округляется** — внутри `formatAmount` выставлен
|
|
65
|
+
`Big.RM = 0`. `"1234.567"` при `fractionLength={2}` даёт `1 234,56`, а не `1 234,57`.
|
|
66
|
+
- **Нечисловое значение не бросает исключение**, а превращается в ноль: `"abc"` → `0,00`.
|
|
67
|
+
Это осознанное поведение библиотеки — компонент не должен падать в рантайме у потребителя.
|
|
68
|
+
- **Пустая строка даёт пустой вывод** — рендерятся пустые `<span>`, а не `0,00`. Если при этом
|
|
69
|
+
задан `currency`, выводятся неразрывный пробел и обозначение валюты: сумма пустая, а валюта
|
|
70
|
+
остаётся (ветка отрисовки валюты не смотрит на то, пуста ли сумма). Отсекать пустые значения,
|
|
71
|
+
если такой вывод нежелателен, нужно на стороне потребителя.
|
|
72
|
+
- **Ведущий `+` сохраняется**, ведущий `-` заменяется на знак минуса.
|
|
73
|
+
- Разделитель групп — неразрывный пробел `U+00A0` (`AmountConst.GroupSeparator`), разделитель
|
|
74
|
+
дробной части — запятая (`AmountConst.DecimalComma`). Оба не настраиваются через props,
|
|
75
|
+
локализация формата не поддерживается.
|
|
76
|
+
|
|
77
|
+
### Как работает `adaptive`
|
|
78
|
+
|
|
79
|
+
`adaptive` не задаёт размер напрямую, а включает класс `styles.adaptive`
|
|
80
|
+
(`font-size: 10px`, `line-height: 12px`), когда длина **форматированной суммы** достигает
|
|
81
|
+
`ADAPTIVE_AMOUNT_LENGTH = 14` символов. Нюансы:
|
|
82
|
+
|
|
83
|
+
- Считается строка после форматирования, вместе с разделителями групп и дробной частью:
|
|
84
|
+
`"12 345 678,00"` — 13 символов, шрифт не уменьшается; `"123 456 789,00"` — 14, уменьшается.
|
|
85
|
+
- Обозначение валюты в длину **не входит**.
|
|
86
|
+
- Знак минуса в длину **входит** — она меряется уже после замены дефис-минуса. У одной и той
|
|
87
|
+
же суммы адаптив может включиться только из-за знака: `"12 345 678,00"` — 13 символов, без
|
|
88
|
+
адаптива, а `"−12 345 678,00"` — ровно 14, с адаптивом.
|
|
89
|
+
- Размер фиксированный (10px) — промежуточных ступеней нет, от размера родительского `Text`
|
|
90
|
+
результат не зависит.
|
|
62
91
|
|
|
63
92
|
---
|
|
64
93
|
|
|
65
|
-
##
|
|
66
|
-
|
|
67
|
-
### Компонент — `React.FC`, НЕ `forwardRef`
|
|
68
|
-
|
|
69
|
-
```tsx
|
|
70
|
-
export const Amount: React.FC<IAmountProps> = ({ ... }) => { ... }
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
Это **исключение из правила библиотеки про обязательный forwardRef**. Причина
|
|
74
|
-
исторически неизвестна; при AI refactoring компонент должен быть переведён на
|
|
75
|
-
`React.forwardRef<HTMLSpanElement, IAmountProps>`. Это non-breaking изменение.
|
|
76
|
-
До рефакторинга — не добавлять ref-логику, она не пройдёт TypeScript.
|
|
77
|
-
|
|
78
|
-
### `dataTestId` — НЕ `data-testid`
|
|
79
|
-
|
|
80
|
-
Имя prop — camelCase `dataTestId`. Пропускается через проп-деструктуризацию и
|
|
81
|
-
применяется только к внутренним спанам:
|
|
82
|
-
- `{dataTestId}__amount` — на спан с самим числом.
|
|
83
|
-
- `{dataTestId}__currencyName` — на спан с валютой.
|
|
84
|
-
|
|
85
|
-
На root `<span>` `dataTestId` не попадает автоматически — потребитель, если нужно,
|
|
86
|
-
передаёт `data-test-id` через `...restProps`. Это намеренная двухуровневая
|
|
87
|
-
структура для тестов.
|
|
88
|
-
|
|
89
|
-
### Замена дефис-минуса на настоящий знак минус
|
|
90
|
-
|
|
91
|
-
```ts
|
|
92
|
-
if (formattedAmount[0] == "-") {
|
|
93
|
-
formattedAmount = formattedAmount.replace("\u002D", "\u2212");
|
|
94
|
-
}
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
`\u002D` — ASCII hyphen-minus, `\u2212` — Unicode MINUS SIGN. Screen reader
|
|
98
|
-
корректно произносит `\u2212` как "минус", а `\u002D` обычно читается как "дефис"
|
|
99
|
-
или пропускается. **Не убирать** — это осознанная a11y-особенность.
|
|
100
|
-
|
|
101
|
-
Замена применяется ТОЛЬКО в первой позиции — если минус в середине (например,
|
|
102
|
-
разделитель диапазона "100–200"), он не будет заменён.
|
|
103
|
-
|
|
104
|
-
### Неразрывный пробел перед валютой
|
|
105
|
-
|
|
106
|
-
```tsx
|
|
107
|
-
renderCurrencyName = () => [
|
|
108
|
-
"\u00A0", // NBSP
|
|
109
|
-
<span ...>{currency}</span>,
|
|
110
|
-
]
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
Между числом и валютой вставляется NBSP (`\u00A0`), не обычный пробел. Это
|
|
114
|
-
предотвращает перенос валюты на следующую строку при переполнении.
|
|
115
|
-
|
|
116
|
-
### Адаптивный шрифт через `!important`
|
|
117
|
-
|
|
118
|
-
`.adaptive { font-size: 10px !important; line-height: 12px !important; }` —
|
|
119
|
-
`!important` нужен, чтобы перебить родительский Typography-стиль. Если потребитель
|
|
120
|
-
хочет переопределить размер — `className` с более специфичным селектором тоже
|
|
121
|
-
должен использовать `!important`. Это компромисс ради надёжного поведения
|
|
122
|
-
в контексте таблиц/карточек.
|
|
123
|
-
|
|
124
|
-
Порог `adaptiveAmountLength = 14` — длина именно **форматированной** строки (после
|
|
125
|
-
вставки разделителей групп). Не равна количеству значащих цифр.
|
|
126
|
-
|
|
127
|
-
### `formatAmount` — большая часть логики вне компонента
|
|
128
|
-
|
|
129
|
-
`Amount.tsx` — тонкая обёртка. Вся сложность форматирования в `utils/amountUtils.ts`:
|
|
130
|
-
- Использует `big.js` для чисел (устойчиво к floating-point).
|
|
131
|
-
- `Big.RM = 0` — режим без округления (truncate).
|
|
132
|
-
- Принимает запятую и точку как десятичный разделитель.
|
|
133
|
-
- Поддерживает знак "+" (сохраняется в выводе).
|
|
134
|
-
- Поддерживает `separateGroups` и `fillFraction` — но **Amount не прокидывает эти
|
|
135
|
-
флаги**. Для customизации форматирования нужно расширить Amount или использовать
|
|
136
|
-
`formatAmount` напрямую.
|
|
137
|
-
|
|
138
|
-
### `data-tx={process.env.npm_package_version}`
|
|
94
|
+
## Дизайн-токены
|
|
139
95
|
|
|
140
|
-
|
|
141
|
-
|
|
96
|
+
Собственных токенов у компонента нет: `styles/Amount.module.less` содержит единственное
|
|
97
|
+
правило `.adaptive` с литеральными `font-size` / `line-height`. Цвет и базовый размер шрифта
|
|
98
|
+
задаёт родитель — обычно `Text` (`ETextSize`, `EFontType`), см. примеры в stories.
|
|
142
99
|
|
|
143
100
|
---
|
|
144
101
|
|
|
145
102
|
## Инварианты
|
|
146
103
|
|
|
147
|
-
- **`
|
|
148
|
-
`
|
|
149
|
-
- **`
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
-
|
|
157
|
-
|
|
158
|
-
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
104
|
+
- **`forwardRef` на корневой `<span>`** — не убирать. Ref указывает на тот же элемент, что
|
|
105
|
+
получает `className` и `...rest` (с 1.42.0).
|
|
106
|
+
- **`data-tx` выставляется после `{...restProps}`** — поэтому потребитель не может его
|
|
107
|
+
перетереть через props. Позиции `className` и `ref` в JSX на поведение не влияют
|
|
108
|
+
(`className` деструктурирован и мерджится через `clsx`, `ref` в `restProps` попасть не может).
|
|
109
|
+
- **Разметка фиксирована:** корневой `<span>` → `<span>` с суммой → (при наличии `currency`)
|
|
110
|
+
неразрывный пробел текстовым узлом → `<span>` с валютой. Валюта отдельным элементом нужна
|
|
111
|
+
для `title` и для тестового атрибута; неразрывный пробел — чтобы валюта не отрывалась от
|
|
112
|
+
суммы при переносе строки.
|
|
113
|
+
- **Замена `-` на `−`** — accessibility-контракт, см. ниже. Не «упрощать» обратно
|
|
114
|
+
до дефиса.
|
|
115
|
+
- **`dataTestId` — префикс, а не готовый атрибут.** На корневой элемент `data-test-id` не
|
|
116
|
+
ставится; дочерние получают `${dataTestId}__amount` и `${dataTestId}__currencyName`. Схема
|
|
117
|
+
именования — часть публичного контракта, на неё опираются e2e потребителей.
|
|
118
|
+
- **`IAmountProps` — не только props этого компонента.** `StatusTrackerSum` строит из него
|
|
119
|
+
свой публичный интерфейс: `amountProps: IAmountProps` в `IStatusTrackerSumProps`
|
|
120
|
+
(`src/components/StatusTracker/components/StatusTrackerSum.tsx`). Любое изменение формы
|
|
121
|
+
`IAmountProps` автоматически меняет публичный API `StatusTracker`.
|
|
122
|
+
- **`!important` в `.adaptive`** — достался исторически, причина в репозитории не
|
|
123
|
+
зафиксирована. Внутренние потребители кладут `Amount` внутрь `Title` / `Text`, а не
|
|
124
|
+
навешивают их класс на него, то есть сценария, требующего `!important`, внутри библиотеки
|
|
125
|
+
нет. Снимать — только вместе с прогоном visual-тестов.
|
|
126
|
+
- **`displayName = "Amount"`** — используется в React DevTools.
|
|
165
127
|
|
|
166
128
|
---
|
|
167
129
|
|
|
168
130
|
## Accessibility
|
|
169
131
|
|
|
170
|
-
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
---
|
|
184
|
-
|
|
185
|
-
## Дизайн-токены
|
|
186
|
-
|
|
187
|
-
Нет — компонент не хардкодит цветов и использует наследуемый от родителя шрифт.
|
|
188
|
-
Единственное исключение — класс `.adaptive` с фиксированными `10px/12px`
|
|
189
|
-
(не через токены). Это кандидат на рефакторинг с введением токенов.
|
|
132
|
+
- **Знак минуса.** `formatAmount` возвращает отрицательные суммы с дефис-минусом `-`.
|
|
133
|
+
Как его озвучит скрин-ридер, зависит от контекста и настроек пунктуации: перед числом он
|
|
134
|
+
часто читается как «минус», но может и игнорироваться, и давать паузу. Типографский минус
|
|
135
|
+
`−` (U+2212) распознаётся однозначно, поэтому компонент подменяет символ — так озвучивание
|
|
136
|
+
перестаёт зависеть от AT и её настроек. Замена делается только для первого символа —
|
|
137
|
+
внутри числа дефисов не бывает.
|
|
138
|
+
- **Неразрывный пробел** между суммой и валютой (`U+00A0`) удерживает их на одной строке.
|
|
139
|
+
- Компонент неинтерактивен: не получает фокус, не обрабатывает клавиатуру, ARIA-ролей не
|
|
140
|
+
выставляет. Семантику («Итого», «Остаток») даёт окружающая разметка.
|
|
141
|
+
- `currencyTitle` попадает в `title` — это подсказка по наведению, а не доступное имя.
|
|
142
|
+
Строка приходит от потребителя, компонент текст не хардкодит (библиотека мультиязычная).
|
|
143
|
+
- Компонент не выставляет `aria-label` с суммой прописью: текстовое содержимое читается
|
|
144
|
+
скрин-ридером как есть.
|
|
190
145
|
|
|
191
146
|
---
|
|
192
147
|
|
|
193
148
|
## Связанные компоненты
|
|
194
149
|
|
|
195
|
-
- `AmountField` (`src/components/AmountField`) —
|
|
196
|
-
Использует
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
150
|
+
- `AmountField` (`src/components/AmountField/AmountField.tsx`) — поле ввода суммы.
|
|
151
|
+
Использует не `Amount`, а собственные `AmountBaseInputParser` / `AmountBaseInputFormatter`;
|
|
152
|
+
общего кода с `Amount` у него нет, кроме `AmountConst`.
|
|
153
|
+
- `Text` (`src/components/Typography/Text.tsx`) — типовой родитель: задаёт размер, цвет
|
|
154
|
+
(`EFontType.BRAND` для прихода, `EFontType.ERROR` для расхода) и начертание.
|
|
155
|
+
- `StatusTrackerSum` (`src/components/StatusTracker/components/StatusTrackerSum.tsx`) —
|
|
156
|
+
сумма в шапке статус-трекера, пробрасывает в `Amount` весь `amountProps`.
|
|
157
|
+
- `TableFooterSummaryAmount` (`src/components/Table/TableFooter/components/TableFooterSummaryAmount.tsx`) —
|
|
158
|
+
подытог в подвале таблицы, рендерит `Amount` с `value` и `currency`.
|
|
159
|
+
- `formatAmount` / `amountComparator` (`src/utils/amountUtils.ts`) — публичные утилиты; при
|
|
160
|
+
выводе суммы в разметке предпочитай компонент, при расчётах и сортировке — утилиты.
|
|
205
161
|
|
|
206
162
|
---
|
|
207
163
|
|
|
208
164
|
## Stories
|
|
209
165
|
|
|
210
|
-
`stories/Amount/Amount.stories.tsx`
|
|
166
|
+
Основные истории: `stories/Amount/Amount.stories.tsx`
|
|
211
167
|
Файлы примеров: `stories/Amount/examples/`
|
|
212
168
|
|
|
213
169
|
| Story | Example file | Что демонстрирует |
|
|
214
170
|
|---|---|---|
|
|
215
|
-
| `Playground` | `PlaygroundExample.tsx` | Интерактивный
|
|
216
|
-
| `Default` | `DefaultExample.tsx` |
|
|
217
|
-
| `
|
|
171
|
+
| `Playground` | `PlaygroundExample.tsx` | Интерактивный подбор `value`, `fractionLength`, `currency`, `currencyTitle`, `adaptive` |
|
|
172
|
+
| `Default` | `DefaultExample.tsx` | Минимальный вызов: сумма с валютой внутри `Text` |
|
|
173
|
+
| `Adaptive` | `AdaptiveExample.tsx` | Уменьшение шрифта на длинной сумме (50 млрд) |
|
|
174
|
+
| `Example` | `ShowcaseExample.tsx` | Витрина: разные `fractionLength`, знаки `+` / `-` с цветом, без валюты, акцент, адаптив |
|
|
175
|
+
|
|
176
|
+
Скриншоты снимаются со стори `Default` и `Adaptive` (`amount--default--xs|xl.png`,
|
|
177
|
+
`amount--adaptive--xs|xl.png`). `Playground` и `Example` исключены
|
|
178
|
+
(`testRunner: { skip: true }`).
|
|
218
179
|
|
|
219
180
|
---
|
|
220
181
|
|
|
@@ -222,7 +183,7 @@ renderCurrencyName = () => [
|
|
|
222
183
|
|
|
223
184
|
| Дата | Изменение |
|
|
224
185
|
|---|---|
|
|
225
|
-
| 2026-
|
|
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-разметка и визуальное отображение не изменены. |
|
|
226
187
|
|
|
227
188
|
---
|
|
228
189
|
|
|
@@ -243,6 +204,21 @@ export const DefaultExample = () => (
|
|
|
243
204
|
);
|
|
244
205
|
```
|
|
245
206
|
|
|
207
|
+
### Adaptive
|
|
208
|
+
|
|
209
|
+
`stories/Amount/examples/AdaptiveExample.tsx`
|
|
210
|
+
|
|
211
|
+
```tsx
|
|
212
|
+
import React from "react";
|
|
213
|
+
import { Amount, EFontType, ETextSize, Text } from "@sberbusiness/triplex-next";
|
|
214
|
+
|
|
215
|
+
export const AdaptiveExample = () => (
|
|
216
|
+
<Text size={ETextSize.B2} type={EFontType.PRIMARY}>
|
|
217
|
+
<Amount value="50000000000.31" currency="RUB" currencyTitle="Российские рубли" fractionLength={2} adaptive />
|
|
218
|
+
</Text>
|
|
219
|
+
);
|
|
220
|
+
```
|
|
221
|
+
|
|
246
222
|
### Example
|
|
247
223
|
|
|
248
224
|
`stories/Amount/examples/ShowcaseExample.tsx`
|