@vkontakte/vkui 8.0.0 → 8.0.2
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/components/Clickable/useState.js +3 -2
- package/dist/components/Clickable/useState.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +2 -2
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/FormItem/FormItemTop/FormItemTopAside.d.ts +1 -1
- package/dist/components/FormItem/FormItemTop/FormItemTopAside.d.ts.map +1 -1
- package/dist/components/FormItem/FormItemTop/FormItemTopAside.js +3 -2
- package/dist/components/FormItem/FormItemTop/FormItemTopAside.js.map +1 -1
- package/dist/components/FormItem/FormItemTop/FormItemTopLabel.d.ts +1 -1
- package/dist/components/FormItem/FormItemTop/FormItemTopLabel.d.ts.map +1 -1
- package/dist/components/FormItem/FormItemTop/FormItemTopLabel.js +2 -2
- package/dist/components/FormItem/FormItemTop/FormItemTopLabel.js.map +1 -1
- package/dist/components/ImageBase/ImageBase.d.ts +3 -1
- package/dist/components/ImageBase/ImageBase.d.ts.map +1 -1
- package/dist/components/ImageBase/ImageBase.js +9 -5
- package/dist/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/components/Input/Input.d.ts +2 -2
- package/dist/components/Input/Input.d.ts.map +1 -1
- package/dist/components/Input/Input.js +2 -1
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/Search/Search.d.ts +2 -2
- package/dist/components/Search/Search.d.ts.map +1 -1
- package/dist/components/Search/Search.js +2 -1
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components.css +1 -1
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/Clickable/useState.js +3 -2
- package/dist/cssm/components/Clickable/useState.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +2 -2
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/FormItem/FormItemTop/FormItemTopAside.js +3 -2
- package/dist/cssm/components/FormItem/FormItemTop/FormItemTopAside.js.map +1 -1
- package/dist/cssm/components/FormItem/FormItemTop/FormItemTopLabel.js +2 -2
- package/dist/cssm/components/FormItem/FormItemTop/FormItemTopLabel.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBase.js +9 -5
- package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBase.module.css +11 -3
- package/dist/cssm/components/Input/Input.js +2 -1
- package/dist/cssm/components/Input/Input.js.map +1 -1
- package/dist/cssm/components/Search/Search.js +2 -1
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/vkui.css +1 -1
- package/dist/vkui.css.map +1 -1
- package/package.json +1 -1
- package/src/components/Clickable/useState.tsx +3 -3
- package/src/components/CustomSelect/CustomSelect.tsx +3 -2
- package/src/components/FormItem/FormItemTop/FormItemTopAside.tsx +3 -2
- package/src/components/FormItem/FormItemTop/FormItemTopLabel.tsx +2 -1
- package/src/components/ImageBase/ImageBase.module.css +11 -3
- package/src/components/ImageBase/ImageBase.module.css.d.ts.map +1 -1
- package/src/components/ImageBase/ImageBase.tsx +8 -2
- package/src/components/Input/Input.tsx +3 -0
- package/src/components/Search/Search.tsx +4 -1
package/package.json
CHANGED
|
@@ -182,11 +182,11 @@ function useActive({
|
|
|
182
182
|
}
|
|
183
183
|
|
|
184
184
|
React.useEffect(() => {
|
|
185
|
-
if (lockState) {
|
|
186
|
-
// Сбрасываем setActivated если обнаруживаем lockState
|
|
185
|
+
if (lockState || !hasActive) {
|
|
186
|
+
// Сбрасываем setActivated если обнаруживаем lockState или !hasActive
|
|
187
187
|
setActivated(false);
|
|
188
188
|
}
|
|
189
|
-
}, [lockState, setActivated]);
|
|
189
|
+
}, [lockState, hasActive, setActivated]);
|
|
190
190
|
|
|
191
191
|
const onPointerDown = () => {
|
|
192
192
|
if (lockState) {
|
|
@@ -304,7 +304,8 @@ export function CustomSelect<OptionInterfaceT extends CustomSelectOptionInterfac
|
|
|
304
304
|
multiline,
|
|
305
305
|
placeholder,
|
|
306
306
|
'icon': iconProp,
|
|
307
|
-
selectType
|
|
307
|
+
selectType,
|
|
308
|
+
mode,
|
|
308
309
|
align,
|
|
309
310
|
form,
|
|
310
311
|
|
|
@@ -771,7 +772,7 @@ export function CustomSelect<OptionInterfaceT extends CustomSelectOptionInterfac
|
|
|
771
772
|
accessible={accessible}
|
|
772
773
|
before={before}
|
|
773
774
|
after={afterItems}
|
|
774
|
-
selectType={selectType}
|
|
775
|
+
selectType={selectType || mode || 'default'}
|
|
775
776
|
align={align}
|
|
776
777
|
status={status}
|
|
777
778
|
multiline={multiline}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type * as React from 'react';
|
|
2
|
+
import { classNames } from '@vkontakte/vkjs';
|
|
2
3
|
import type { HasComponent, HasRootRef } from '../../../types';
|
|
3
4
|
import { Subhead } from '../../Typography/Subhead/Subhead';
|
|
4
5
|
import styles from '../FormItem.module.css';
|
|
@@ -14,9 +15,9 @@ export interface FormItemTopAsideProps
|
|
|
14
15
|
* @since 6.1.0
|
|
15
16
|
*
|
|
16
17
|
*/
|
|
17
|
-
export const FormItemTopAside = ({ children, ...restProps }: FormItemTopAsideProps) => {
|
|
18
|
+
export const FormItemTopAside = ({ children, className, ...restProps }: FormItemTopAsideProps) => {
|
|
18
19
|
return (
|
|
19
|
-
<Subhead className={styles.aside} {...restProps}>
|
|
20
|
+
<Subhead className={classNames(className, styles.aside)} {...restProps}>
|
|
20
21
|
{children}
|
|
21
22
|
</Subhead>
|
|
22
23
|
);
|
|
@@ -23,6 +23,7 @@ export const FormItemTopLabel = ({
|
|
|
23
23
|
children,
|
|
24
24
|
Component: componentProp,
|
|
25
25
|
htmlFor,
|
|
26
|
+
className,
|
|
26
27
|
...restProps
|
|
27
28
|
}: FormItemTopLabelProps) => {
|
|
28
29
|
const component = componentProp || (htmlFor && 'label') || 'span';
|
|
@@ -30,7 +31,7 @@ export const FormItemTopLabel = ({
|
|
|
30
31
|
|
|
31
32
|
return (
|
|
32
33
|
<Subhead
|
|
33
|
-
className={classNames(styles.label, topMultiline && styles.labelMultiline)}
|
|
34
|
+
className={classNames(className, styles.label, topMultiline && styles.labelMultiline)}
|
|
34
35
|
Component={component}
|
|
35
36
|
htmlFor={htmlFor}
|
|
36
37
|
{...restProps}
|
|
@@ -41,10 +41,19 @@
|
|
|
41
41
|
transform-origin: left top;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
.
|
|
45
|
-
|
|
44
|
+
.imgWithFilterContainer {
|
|
45
|
+
overflow: hidden; /* Обрезает сайд-эффекты свойства `filter`. */
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.img,
|
|
49
|
+
.imgWithFilterContainer {
|
|
46
50
|
inline-size: 100%;
|
|
47
51
|
block-size: 100%;
|
|
52
|
+
border-radius: inherit;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.img {
|
|
56
|
+
display: block;
|
|
48
57
|
/* Скрывает текст из атрибута alt. */
|
|
49
58
|
color: transparent;
|
|
50
59
|
/*
|
|
@@ -53,7 +62,6 @@
|
|
|
53
62
|
*/
|
|
54
63
|
text-indent: 10000px;
|
|
55
64
|
border: 0;
|
|
56
|
-
border-radius: inherit;
|
|
57
65
|
}
|
|
58
66
|
|
|
59
67
|
.imgKeepRatio {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["./ImageBase.module.css"],"names":["host","loaded","transparentBackground","children","border","img","imgKeepRatio","imgObjectFitContain","imgObjectFitCover","imgObjectFitNone","imgObjectFitScaleDown","withObjectPosition","withFilter","imgHiddenAlt","fallback"],"mappings":"AAAA;AAAA,E,aAAAA,M,WAAA;AAAA,E,aAaAC,Q,WAbA;AAAA,E,aAcAC,uB,WAdA;AAAA,E,aAkBAC,U,WAlBA;AAAA,E,aAmBAC,Q,WAnBA;AAAA,E,aA2BAD,U,WA3BA;AAAA,E,aAkCAC,Q,WAlCA;AAAA,E,aA2CAC,
|
|
1
|
+
{"version":3,"sources":["./ImageBase.module.css"],"names":["host","loaded","transparentBackground","children","border","imgWithFilterContainer","img","imgKeepRatio","imgObjectFitContain","imgObjectFitCover","imgObjectFitNone","imgObjectFitScaleDown","withObjectPosition","withFilter","imgHiddenAlt","fallback"],"mappings":"AAAA;AAAA,E,aAAAA,M,WAAA;AAAA,E,aAaAC,Q,WAbA;AAAA,E,aAcAC,uB,WAdA;AAAA,E,aAkBAC,U,WAlBA;AAAA,E,aAmBAC,Q,WAnBA;AAAA,E,aA2BAD,U,WA3BA;AAAA,E,aAkCAC,Q,WAlCA;AAAA,E,aA2CAC,wB,WA3CA;AAAA,E,aA+CAC,K,WA/CA;AAAA,E,aAgDAD,wB,WAhDA;AAAA,E,aAsDAC,K,WAtDA;AAAA,E,aAkEAC,c,WAlEA;AAAA,E,aAuEAC,qB,WAvEA;AAAA,E,aA2EAC,mB,WA3EA;AAAA,E,aA+EAC,kB,WA/EA;AAAA,E,aAmFAC,uB,WAnFA;AAAA,E,aAuFAC,oB,WAvFA;AAAA,E,aAgGAC,Y,WAhGA;AAAA,E,aAyGAC,c,WAzGA;AAAA,E,aA6GAC,U,WA7GA;AAAA,E,aA0H4Cf,M,WA1H5C;AAAA,E,aA+H2CA,M,WA/H3C;AAAA;AAAA","file":"ImageBase.module.css.d.ts","sourceRoot":""}
|
|
@@ -118,8 +118,10 @@ export interface ImageBaseProps
|
|
|
118
118
|
*/
|
|
119
119
|
elementTiming?: string;
|
|
120
120
|
/**
|
|
121
|
-
* Пользовательское значения стиля filter
|
|
121
|
+
* Пользовательское значения стиля filter.
|
|
122
122
|
* Подробнее можно почитать в [документации](https://developer.mozilla.org/ru/docs/Web/CSS/filter).
|
|
123
|
+
*
|
|
124
|
+
* При передаче этого свойства `<img />` будет обёрнут в дополнительный контейнер.
|
|
123
125
|
*/
|
|
124
126
|
filter?: React.CSSProperties['filter'];
|
|
125
127
|
/**
|
|
@@ -337,6 +339,10 @@ export const ImageBase: React.FC<ImageBaseProps> & {
|
|
|
337
339
|
[mouseOutHandlers, mouseOverHandlers, size],
|
|
338
340
|
);
|
|
339
341
|
|
|
342
|
+
const imgSlot = hasSrc && (
|
|
343
|
+
<img ref={imgRef} {...imgRest} {...getFetchPriorityProp(fetchPriority)} />
|
|
344
|
+
);
|
|
345
|
+
|
|
340
346
|
return (
|
|
341
347
|
<ImageBaseContext.Provider value={contextValue}>
|
|
342
348
|
<Clickable
|
|
@@ -351,7 +357,7 @@ export const ImageBase: React.FC<ImageBaseProps> & {
|
|
|
351
357
|
onMouseOut={onMouseOut}
|
|
352
358
|
{...restProps}
|
|
353
359
|
>
|
|
354
|
-
{
|
|
360
|
+
{filter ? <div className={styles.imgWithFilterContainer}>{imgSlot}</div> : imgSlot}
|
|
355
361
|
{fallbackIcon && <div className={styles.fallback}>{fallbackIcon}</div>}
|
|
356
362
|
{children && <div className={styles.children}>{children}</div>}
|
|
357
363
|
{!noBorder && <div aria-hidden className={styles.border} />}
|
|
@@ -32,6 +32,7 @@ export interface InputProps
|
|
|
32
32
|
| 'multiple'
|
|
33
33
|
| 'name'
|
|
34
34
|
| 'pattern'
|
|
35
|
+
| 'enterKeyHint'
|
|
35
36
|
| 'placeholder'
|
|
36
37
|
| 'readOnly'
|
|
37
38
|
| 'required'
|
|
@@ -91,6 +92,7 @@ export const Input = ({
|
|
|
91
92
|
multiple,
|
|
92
93
|
name,
|
|
93
94
|
pattern,
|
|
95
|
+
enterKeyHint,
|
|
94
96
|
placeholder,
|
|
95
97
|
readOnly,
|
|
96
98
|
required,
|
|
@@ -136,6 +138,7 @@ export const Input = ({
|
|
|
136
138
|
multiple,
|
|
137
139
|
name,
|
|
138
140
|
pattern,
|
|
141
|
+
enterKeyHint,
|
|
139
142
|
placeholder,
|
|
140
143
|
readOnly,
|
|
141
144
|
required,
|
|
@@ -42,6 +42,7 @@ export interface SearchProps
|
|
|
42
42
|
| 'minLength'
|
|
43
43
|
| 'name'
|
|
44
44
|
| 'pattern'
|
|
45
|
+
| 'enterKeyHint'
|
|
45
46
|
| 'placeholder'
|
|
46
47
|
| 'readOnly'
|
|
47
48
|
| 'required'
|
|
@@ -146,7 +147,6 @@ export const Search = ({
|
|
|
146
147
|
getRef,
|
|
147
148
|
|
|
148
149
|
// input props
|
|
149
|
-
placeholder: placeholderProp = 'Поиск',
|
|
150
150
|
autoComplete = 'off',
|
|
151
151
|
autoCapitalize,
|
|
152
152
|
autoCorrect,
|
|
@@ -156,6 +156,8 @@ export const Search = ({
|
|
|
156
156
|
minLength,
|
|
157
157
|
name,
|
|
158
158
|
pattern,
|
|
159
|
+
placeholder: placeholderProp = 'Поиск',
|
|
160
|
+
enterKeyHint,
|
|
159
161
|
readOnly,
|
|
160
162
|
required,
|
|
161
163
|
value,
|
|
@@ -212,6 +214,7 @@ export const Search = ({
|
|
|
212
214
|
minLength,
|
|
213
215
|
name,
|
|
214
216
|
pattern,
|
|
217
|
+
enterKeyHint,
|
|
215
218
|
readOnly,
|
|
216
219
|
required,
|
|
217
220
|
value,
|