@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.
Files changed (54) hide show
  1. package/dist/components/Clickable/useState.js +3 -2
  2. package/dist/components/Clickable/useState.js.map +1 -1
  3. package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  4. package/dist/components/CustomSelect/CustomSelect.js +2 -2
  5. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  6. package/dist/components/FormItem/FormItemTop/FormItemTopAside.d.ts +1 -1
  7. package/dist/components/FormItem/FormItemTop/FormItemTopAside.d.ts.map +1 -1
  8. package/dist/components/FormItem/FormItemTop/FormItemTopAside.js +3 -2
  9. package/dist/components/FormItem/FormItemTop/FormItemTopAside.js.map +1 -1
  10. package/dist/components/FormItem/FormItemTop/FormItemTopLabel.d.ts +1 -1
  11. package/dist/components/FormItem/FormItemTop/FormItemTopLabel.d.ts.map +1 -1
  12. package/dist/components/FormItem/FormItemTop/FormItemTopLabel.js +2 -2
  13. package/dist/components/FormItem/FormItemTop/FormItemTopLabel.js.map +1 -1
  14. package/dist/components/ImageBase/ImageBase.d.ts +3 -1
  15. package/dist/components/ImageBase/ImageBase.d.ts.map +1 -1
  16. package/dist/components/ImageBase/ImageBase.js +9 -5
  17. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  18. package/dist/components/Input/Input.d.ts +2 -2
  19. package/dist/components/Input/Input.d.ts.map +1 -1
  20. package/dist/components/Input/Input.js +2 -1
  21. package/dist/components/Input/Input.js.map +1 -1
  22. package/dist/components/Search/Search.d.ts +2 -2
  23. package/dist/components/Search/Search.d.ts.map +1 -1
  24. package/dist/components/Search/Search.js +2 -1
  25. package/dist/components/Search/Search.js.map +1 -1
  26. package/dist/components.css +1 -1
  27. package/dist/components.css.map +1 -1
  28. package/dist/cssm/components/Clickable/useState.js +3 -2
  29. package/dist/cssm/components/Clickable/useState.js.map +1 -1
  30. package/dist/cssm/components/CustomSelect/CustomSelect.js +2 -2
  31. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  32. package/dist/cssm/components/FormItem/FormItemTop/FormItemTopAside.js +3 -2
  33. package/dist/cssm/components/FormItem/FormItemTop/FormItemTopAside.js.map +1 -1
  34. package/dist/cssm/components/FormItem/FormItemTop/FormItemTopLabel.js +2 -2
  35. package/dist/cssm/components/FormItem/FormItemTop/FormItemTopLabel.js.map +1 -1
  36. package/dist/cssm/components/ImageBase/ImageBase.js +9 -5
  37. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  38. package/dist/cssm/components/ImageBase/ImageBase.module.css +11 -3
  39. package/dist/cssm/components/Input/Input.js +2 -1
  40. package/dist/cssm/components/Input/Input.js.map +1 -1
  41. package/dist/cssm/components/Search/Search.js +2 -1
  42. package/dist/cssm/components/Search/Search.js.map +1 -1
  43. package/dist/vkui.css +1 -1
  44. package/dist/vkui.css.map +1 -1
  45. package/package.json +1 -1
  46. package/src/components/Clickable/useState.tsx +3 -3
  47. package/src/components/CustomSelect/CustomSelect.tsx +3 -2
  48. package/src/components/FormItem/FormItemTop/FormItemTopAside.tsx +3 -2
  49. package/src/components/FormItem/FormItemTop/FormItemTopLabel.tsx +2 -1
  50. package/src/components/ImageBase/ImageBase.module.css +11 -3
  51. package/src/components/ImageBase/ImageBase.module.css.d.ts.map +1 -1
  52. package/src/components/ImageBase/ImageBase.tsx +8 -2
  53. package/src/components/Input/Input.tsx +3 -0
  54. package/src/components/Search/Search.tsx +4 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "type": "module",
3
- "version": "8.0.0",
3
+ "version": "8.0.2",
4
4
  "name": "@vkontakte/vkui",
5
5
  "description": "VKUI library",
6
6
  "module": "./dist/index.js",
@@ -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 = 'default',
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
- .img {
45
- display: block;
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,K,WA3CA;AAAA,E,aA0DAC,c,WA1DA;AAAA,E,aA+DAC,qB,WA/DA;AAAA,E,aAmEAC,mB,WAnEA;AAAA,E,aAuEAC,kB,WAvEA;AAAA,E,aA2EAC,uB,WA3EA;AAAA,E,aA+EAC,oB,WA/EA;AAAA,E,aAwFAC,Y,WAxFA;AAAA,E,aAiGAC,c,WAjGA;AAAA,E,aAqGAC,U,WArGA;AAAA,E,aAkH4Cd,M,WAlH5C;AAAA,E,aAuH2CA,M,WAvH3C;AAAA;AAAA","file":"ImageBase.module.css.d.ts","sourceRoot":""}
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
- {hasSrc && <img ref={imgRef} {...imgRest} {...getFetchPriorityProp(fetchPriority)} />}
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,