@cloud-ru/ds-uikit-product-fields-predefined 2.0.16-preview-d50a3da1.0 → 2.0.16-preview-e30f4f90.0
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/dist/cjs/components/FieldChat/FieldChat.js +1 -1
- package/dist/cjs/components/FieldChat/components/Attachments/styles.module.css +1 -1
- package/dist/cjs/components/FieldChat/components/TextAreaActionsFooter/styles.module.css +2 -4
- package/dist/cjs/components/FieldChat/styles.module.css +4 -2
- package/dist/cjs/components/FieldCode/FieldCode.js +1 -1
- package/dist/cjs/components/FieldCode/styles.module.css +17 -4
- package/dist/cjs/components/FieldPhone/FieldPhone.js +1 -4
- package/dist/cjs/components/FieldPhone/constants.d.ts +1 -7
- package/dist/cjs/components/FieldPhone/constants.js +2 -7
- package/dist/cjs/components/FieldSelectCreate/FieldSelectCreate.js +2 -2
- package/dist/cjs/components/FieldSelectCreate/helperComponents/SelectFooter/SelectFooter.d.ts +1 -3
- package/dist/cjs/components/FieldSelectCreate/helperComponents/SelectFooter/SelectFooter.js +2 -2
- package/dist/cjs/components/FieldSelectCreate/helperComponents/SelectFooter/styles.module.css +2 -1
- package/dist/cjs/components/FieldSelectCreate/styles.module.css +1 -2
- package/dist/cjs/style.css +27 -14
- package/dist/esm/components/FieldChat/FieldChat.js +1 -1
- package/dist/esm/components/FieldChat/components/Attachments/styles.module.css +1 -1
- package/dist/esm/components/FieldChat/components/TextAreaActionsFooter/styles.module.css +2 -4
- package/dist/esm/components/FieldChat/styles.module.css +4 -2
- package/dist/esm/components/FieldCode/FieldCode.js +1 -1
- package/dist/esm/components/FieldCode/styles.module.css +17 -4
- package/dist/esm/components/FieldPhone/FieldPhone.js +3 -6
- package/dist/esm/components/FieldPhone/constants.d.ts +1 -7
- package/dist/esm/components/FieldPhone/constants.js +1 -6
- package/dist/esm/components/FieldSelectCreate/FieldSelectCreate.js +2 -2
- package/dist/esm/components/FieldSelectCreate/helperComponents/SelectFooter/SelectFooter.d.ts +1 -3
- package/dist/esm/components/FieldSelectCreate/helperComponents/SelectFooter/SelectFooter.js +2 -2
- package/dist/esm/components/FieldSelectCreate/helperComponents/SelectFooter/styles.module.css +2 -1
- package/dist/esm/components/FieldSelectCreate/styles.module.css +1 -2
- package/dist/esm/style.css +27 -14
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +14 -14
- package/src/components/FieldChat/FieldChat.tsx +1 -1
- package/src/components/FieldChat/components/Attachments/styles.module.scss +1 -1
- package/src/components/FieldChat/components/TextAreaActionsFooter/styles.module.scss +2 -5
- package/src/components/FieldChat/styles.module.scss +5 -3
- package/src/components/FieldCode/FieldCode.tsx +6 -1
- package/src/components/FieldCode/styles.module.scss +17 -5
- package/src/components/FieldPhone/FieldPhone.tsx +3 -16
- package/src/components/FieldPhone/constants.ts +1 -9
- package/src/components/FieldSelectCreate/FieldSelectCreate.tsx +1 -2
- package/src/components/FieldSelectCreate/helperComponents/SelectFooter/SelectFooter.tsx +2 -4
- package/src/components/FieldSelectCreate/helperComponents/SelectFooter/styles.module.scss +4 -2
- package/src/components/FieldSelectCreate/styles.module.scss +1 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloud-ru/ds-uikit-product-fields-predefined",
|
|
3
|
-
"version": "2.0.16-preview-
|
|
3
|
+
"version": "2.0.16-preview-e30f4f90.0",
|
|
4
4
|
"description": "Набор предопределённых полей формы поверх @ds/fields — телефон, маски, имя, описание, код и другие готовые сценарии ввода.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -44,21 +44,21 @@
|
|
|
44
44
|
"imask": "^7.6.1",
|
|
45
45
|
"merge-refs": "^2.0.0",
|
|
46
46
|
"react-imask": "^7.6.1",
|
|
47
|
+
"@cloud-ru/ds-button": "1.0.2",
|
|
47
48
|
"@cloud-ru/ds-adaptive": "1.0.1",
|
|
48
|
-
"@cloud-ru/ds-
|
|
49
|
-
"@cloud-ru/ds-
|
|
50
|
-
"@cloud-ru/ds-field-decorator": "1.0.7-preview-
|
|
51
|
-
"@cloud-ru/ds-
|
|
52
|
-
"@cloud-ru/ds-
|
|
53
|
-
"@cloud-ru/ds-
|
|
54
|
-
"@cloud-ru/ds-
|
|
49
|
+
"@cloud-ru/ds-attachment": "1.1.9-preview-e30f4f90.0",
|
|
50
|
+
"@cloud-ru/ds-dropzone": "1.0.1",
|
|
51
|
+
"@cloud-ru/ds-field-decorator": "1.0.7-preview-e30f4f90.0",
|
|
52
|
+
"@cloud-ru/ds-fields": "2.2.7-preview-e30f4f90.0",
|
|
53
|
+
"@cloud-ru/ds-input-private": "1.0.5",
|
|
54
|
+
"@cloud-ru/ds-icons": "1.2.0",
|
|
55
|
+
"@cloud-ru/ds-drawer": "1.2.2-preview-e30f4f90.0",
|
|
56
|
+
"@cloud-ru/ds-list": "2.2.1-preview-e30f4f90.0",
|
|
55
57
|
"@cloud-ru/ds-locale": "1.0.0",
|
|
56
|
-
"@cloud-ru/ds-
|
|
57
|
-
"@cloud-ru/ds-
|
|
58
|
-
"@cloud-ru/ds-scroll": "1.0.3-preview-
|
|
59
|
-
"@cloud-ru/ds-
|
|
60
|
-
"@cloud-ru/ds-utils": "1.1.0",
|
|
61
|
-
"@cloud-ru/ds-dropzone": "1.0.2-preview-d50a3da1.0"
|
|
58
|
+
"@cloud-ru/ds-modal": "1.1.3-preview-e30f4f90.0",
|
|
59
|
+
"@cloud-ru/ds-tooltip": "1.0.5",
|
|
60
|
+
"@cloud-ru/ds-scroll": "1.0.3-preview-e30f4f90.0",
|
|
61
|
+
"@cloud-ru/ds-utils": "1.1.0"
|
|
62
62
|
},
|
|
63
63
|
"peerDependencies": {
|
|
64
64
|
"react-hook-form": "^7.79.0",
|
|
@@ -55,7 +55,7 @@ export function FieldChat({ handleSubmit: handleSubmitProp, value, attachment, a
|
|
|
55
55
|
};
|
|
56
56
|
|
|
57
57
|
return (
|
|
58
|
-
<div className={styles.fieldChat}>
|
|
58
|
+
<div className={styles.fieldChat} data-layout-type={layoutType}>
|
|
59
59
|
{isMobile && <Attachments files={files} isMobile={isMobile} />}
|
|
60
60
|
|
|
61
61
|
<FieldTextArea
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
.attachments {
|
|
10
10
|
display: flex;
|
|
11
11
|
gap: base.$sn-primitive-dimension-8;
|
|
12
|
-
|
|
12
|
+
padding: base.$sn-primitive-dimension-1 0;
|
|
13
13
|
|
|
14
14
|
// Превью сохраняют свой размер и уезжают в горизонтальный скролл,
|
|
15
15
|
// а не сжимаются под ширину контейнера.
|
|
@@ -6,9 +6,8 @@
|
|
|
6
6
|
align-items: center;
|
|
7
7
|
justify-content: space-between;
|
|
8
8
|
|
|
9
|
-
box-sizing: border-box;
|
|
10
9
|
width: 100%;
|
|
11
|
-
padding: base.$sn-primitive-dimension-8;
|
|
10
|
+
padding-bottom: base.$sn-primitive-dimension-8;
|
|
12
11
|
}
|
|
13
12
|
|
|
14
13
|
.actionsLeft {
|
|
@@ -16,8 +15,6 @@
|
|
|
16
15
|
flex-direction: row;
|
|
17
16
|
gap: base.$sn-primitive-dimension-8;
|
|
18
17
|
align-items: center;
|
|
19
|
-
|
|
20
|
-
box-sizing: border-box;
|
|
21
18
|
}
|
|
22
19
|
|
|
23
20
|
.actionsRight {
|
|
@@ -27,6 +24,6 @@
|
|
|
27
24
|
align-items: center;
|
|
28
25
|
justify-content: flex-end;
|
|
29
26
|
|
|
30
|
-
box-sizing: border-box;
|
|
31
27
|
width: 100%;
|
|
28
|
+
padding-right: base.$sn-primitive-dimension-8;
|
|
32
29
|
}
|
|
@@ -3,14 +3,16 @@
|
|
|
3
3
|
.fieldChat {
|
|
4
4
|
display: flex;
|
|
5
5
|
flex-direction: column;
|
|
6
|
-
gap: base.$sn-primitive-dimension-
|
|
7
|
-
|
|
8
|
-
box-sizing: border-box;
|
|
6
|
+
gap: base.$sn-primitive-dimension-12;
|
|
9
7
|
// Заполняем контейнер и не даём полю растягиваться под контент (ряд вложений):
|
|
10
8
|
// без этого `.fieldChat` shrink-wrap'ится по самому широкому ребёнку (скролл превью)
|
|
11
9
|
// и вылезает за родителя, а горизонтальный скролл вложений не включается.
|
|
12
10
|
width: 100%;
|
|
13
11
|
min-width: 0;
|
|
12
|
+
|
|
13
|
+
&[data-layout-type='mobile'] {
|
|
14
|
+
gap: base.$sn-primitive-dimension-8;
|
|
15
|
+
}
|
|
14
16
|
}
|
|
15
17
|
|
|
16
18
|
.uploadTooltip {
|
|
@@ -103,7 +103,12 @@ export const FieldCode = forwardRef<FieldCodeRef, FieldCodeProps>(function Field
|
|
|
103
103
|
size={size}
|
|
104
104
|
error={resolvedError}
|
|
105
105
|
>
|
|
106
|
-
<div
|
|
106
|
+
<div
|
|
107
|
+
ref={codeContainerRef}
|
|
108
|
+
className={styles.codeContainer}
|
|
109
|
+
data-size={size}
|
|
110
|
+
data-stretch-cells={stretchCells || undefined}
|
|
111
|
+
>
|
|
107
112
|
{code.map((char, index) => (
|
|
108
113
|
<Cell
|
|
109
114
|
ref={inputRef => {
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
@use '@cloud-ru/ds-figma-variables/build/scss/styles/styles.module' as base;
|
|
2
2
|
|
|
3
|
+
$container-gaps: (
|
|
4
|
+
's': base.$sn-primitive-dimension-8,
|
|
5
|
+
'm': base.$sn-primitive-dimension-8,
|
|
6
|
+
'l': base.$sn-primitive-dimension-12,
|
|
7
|
+
);
|
|
8
|
+
|
|
3
9
|
.fieldCode {
|
|
4
10
|
display: flex;
|
|
5
11
|
flex-direction: column;
|
|
6
12
|
gap: base.$sn-primitive-dimension-8;
|
|
7
13
|
align-items: center;
|
|
8
14
|
|
|
9
|
-
box-sizing: border-box;
|
|
10
|
-
|
|
11
15
|
// align-items: stretch перебивает center — без него дети остаются по ширине контента.
|
|
12
16
|
&[data-stretch-cells] {
|
|
13
17
|
align-items: stretch;
|
|
@@ -25,15 +29,23 @@
|
|
|
25
29
|
|
|
26
30
|
.codeContainer {
|
|
27
31
|
display: flex;
|
|
28
|
-
gap: base.$sn-primitive-dimension-8;
|
|
29
32
|
justify-content: safe center;
|
|
30
33
|
|
|
31
34
|
&[data-stretch-cells] {
|
|
32
35
|
width: 100%;
|
|
33
36
|
}
|
|
37
|
+
|
|
38
|
+
@each $size, $gap in $container-gaps {
|
|
39
|
+
&[data-size='#{$size}'] {
|
|
40
|
+
gap: $gap;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
34
43
|
}
|
|
35
44
|
|
|
36
|
-
// Разрыв между группами ячеек — 12 по макету: gap 8 + 4.
|
|
37
45
|
.cellSpacing {
|
|
38
|
-
margin-right
|
|
46
|
+
@each $size, $margin-right in $container-gaps {
|
|
47
|
+
&[data-size='#{$size}'] {
|
|
48
|
+
margin-right: $margin-right;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
39
51
|
}
|
|
@@ -4,21 +4,11 @@ import { Item, ItemId } from '@cloud-ru/ds-list';
|
|
|
4
4
|
import { useValueControl } from '@cloud-ru/ds-utils';
|
|
5
5
|
import cn from 'classnames';
|
|
6
6
|
import mergeRefs from 'merge-refs';
|
|
7
|
-
import {
|
|
8
|
-
ClipboardEventHandler,
|
|
9
|
-
cloneElement,
|
|
10
|
-
CSSProperties,
|
|
11
|
-
forwardRef,
|
|
12
|
-
isValidElement,
|
|
13
|
-
useEffect,
|
|
14
|
-
useMemo,
|
|
15
|
-
useRef,
|
|
16
|
-
useState,
|
|
17
|
-
} from 'react';
|
|
7
|
+
import { ClipboardEventHandler, forwardRef, useEffect, useMemo, useRef, useState } from 'react';
|
|
18
8
|
import { useIMask } from 'react-imask';
|
|
19
9
|
|
|
20
10
|
import { TEST_IDS } from '../../constants';
|
|
21
|
-
import { PLACEHOLDER_CHAR, REFOCUS_AFTER_COUNTRY_DELAY_MS
|
|
11
|
+
import { PLACEHOLDER_CHAR, REFOCUS_AFTER_COUNTRY_DELAY_MS } from './constants';
|
|
22
12
|
import { useCountries } from './hooks';
|
|
23
13
|
import styles from './styles.module.scss';
|
|
24
14
|
import { CountrySettings, FieldPhoneOptionsProps, MaskOptions } from './types';
|
|
@@ -233,9 +223,6 @@ export const FieldPhone = forwardRef<HTMLInputElement, FieldPhoneProps>(function
|
|
|
233
223
|
};
|
|
234
224
|
|
|
235
225
|
const showClear = showClearButton && Boolean(unmaskedValue);
|
|
236
|
-
const selectorFlag = isValidElement<{ style?: CSSProperties }>(country?.beforeContent)
|
|
237
|
-
? cloneElement(country.beforeContent, { style: SELECTOR_FLAG_STYLE })
|
|
238
|
-
: country?.beforeContent;
|
|
239
226
|
|
|
240
227
|
return (
|
|
241
228
|
<FieldCombo
|
|
@@ -255,7 +242,7 @@ export const FieldPhone = forwardRef<HTMLInputElement, FieldPhoneProps>(function
|
|
|
255
242
|
isOnlyOneCountryAvailable
|
|
256
243
|
? undefined
|
|
257
244
|
: {
|
|
258
|
-
action:
|
|
245
|
+
action: country?.beforeContent,
|
|
259
246
|
'data-test-id': TEST_IDS.fieldPhoneCountrySelect,
|
|
260
247
|
droplist: {
|
|
261
248
|
items,
|
|
@@ -1,18 +1,10 @@
|
|
|
1
|
-
import { CSSProperties } from 'react';
|
|
2
|
-
|
|
3
1
|
export const PLACEHOLDER_CHAR = '_';
|
|
4
2
|
|
|
5
3
|
/**
|
|
6
4
|
* Размер иконки флага страны в селекторе и выпадающем списке. У флагов из `@cloud-ru/ds-icons/flags`
|
|
7
5
|
* `size` — высота, ширина следует нативному аспекту 24×18: `18` даёт бокс 24×18.
|
|
8
6
|
*/
|
|
9
|
-
export const FLAG_ICON_SIZE =
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Флаг в кнопке страны — 24×18 на всех размерах (Product-макет fieldPhone). Кнопка-слот FieldCombo
|
|
13
|
-
* клампит иконки до 16 на size s, инлайн-стиль снимает кламп.
|
|
14
|
-
*/
|
|
15
|
-
export const SELECTOR_FLAG_STYLE: CSSProperties = { maxWidth: 'none', maxHeight: 'none' };
|
|
7
|
+
export const FLAG_ICON_SIZE = 24;
|
|
16
8
|
|
|
17
9
|
/** Задержка перед возвратом фокуса в поле после выбора страны — ждём закрытия дроплиста (desktop). */
|
|
18
10
|
export const REFOCUS_AFTER_COUNTRY_DELAY_MS = 500;
|
|
@@ -103,11 +103,10 @@ export const FieldSelectCreate = forwardRef<HTMLInputElement, FieldSelectCreateP
|
|
|
103
103
|
disabled={isNone || selectProps.disabled}
|
|
104
104
|
placeholder={selectProps.placeholder ?? t('FieldSelectCreate.placeholder')}
|
|
105
105
|
{...selectDataStates}
|
|
106
|
-
footerDivider
|
|
107
106
|
footer={
|
|
108
107
|
// В состоянии ошибки показываем только «Обновить» из errorDataState — без футера «Создать» (по макету).
|
|
109
108
|
selectProps.dataError ? undefined : (
|
|
110
|
-
<SelectFooter onClick={onOpen} createButtonLabel={createButtonLabel} canCreate={canCreate}
|
|
109
|
+
<SelectFooter onClick={onOpen} createButtonLabel={createButtonLabel} canCreate={canCreate} />
|
|
111
110
|
)
|
|
112
111
|
}
|
|
113
112
|
/>,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { APPEARANCE, Button, ICON_POSITION,
|
|
1
|
+
import { APPEARANCE, Button, ICON_POSITION, VIEW } from '@cloud-ru/ds-button';
|
|
2
2
|
import { PlusSVG } from '@cloud-ru/ds-icons/interface/system';
|
|
3
3
|
import { Tooltip } from '@cloud-ru/ds-tooltip';
|
|
4
4
|
|
|
@@ -10,11 +10,10 @@ type SelectFooterProps = {
|
|
|
10
10
|
onClick(): void;
|
|
11
11
|
createButtonLabel: string;
|
|
12
12
|
canCreate: boolean;
|
|
13
|
-
size: Size;
|
|
14
13
|
};
|
|
15
14
|
|
|
16
15
|
/** Персистентный футер дроплиста с кнопкой «Создать» (недоступна и с tooltip при нехватке прав). */
|
|
17
|
-
export function SelectFooter({ onClick, createButtonLabel, canCreate
|
|
16
|
+
export function SelectFooter({ onClick, createButtonLabel, canCreate }: SelectFooterProps) {
|
|
18
17
|
const { t } = fieldsPredefinedLocale.useTranslations();
|
|
19
18
|
|
|
20
19
|
const button = (
|
|
@@ -25,7 +24,6 @@ export function SelectFooter({ onClick, createButtonLabel, canCreate, size }: Se
|
|
|
25
24
|
icon={<PlusSVG />}
|
|
26
25
|
iconPosition={ICON_POSITION.Before}
|
|
27
26
|
onClick={onClick}
|
|
28
|
-
size={size}
|
|
29
27
|
disabled={!canCreate}
|
|
30
28
|
data-test-id={TEST_IDS.fieldSelectCreateFooterButton}
|
|
31
29
|
/>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
@use '@cloud-ru/ds-figma-variables/build/scss/styles/styles.module' as base;
|
|
2
|
+
|
|
2
3
|
.footerWrapper {
|
|
3
4
|
display: flex;
|
|
4
5
|
align-items: center;
|
|
5
|
-
|
|
6
|
+
padding-top: base.$sn-primitive-dimension-4;
|
|
7
|
+
border-top: base.$sn-primitive-strokeWeight-strokeRegular solid base.$sn-theme-color-available-borderColor;
|
|
6
8
|
}
|