@snack-uikit/fields 0.36.3-preview-bb2cdfb8.0 → 0.36.4

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 (61) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +0 -11
  3. package/dist/cjs/components/FieldColor/FieldColor.d.ts +0 -5
  4. package/dist/cjs/components/FieldColor/FieldColor.js +3 -5
  5. package/dist/cjs/components/FieldDate/FieldDate.d.ts +0 -3
  6. package/dist/cjs/components/FieldDate/FieldDate.js +3 -5
  7. package/dist/cjs/components/FieldDecorator/FieldDecorator.d.ts +1 -12
  8. package/dist/cjs/components/FieldDecorator/FieldDecorator.js +3 -5
  9. package/dist/cjs/components/FieldSecure/FieldSecure.d.ts +1 -3
  10. package/dist/cjs/components/FieldSecure/FieldSecure.js +3 -5
  11. package/dist/cjs/components/FieldSelect/FieldSelectMultiple.d.ts +0 -1
  12. package/dist/cjs/components/FieldSelect/FieldSelectMultiple.js +2 -4
  13. package/dist/cjs/components/FieldSelect/FieldSelectSingle.d.ts +0 -1
  14. package/dist/cjs/components/FieldSelect/FieldSelectSingle.js +2 -4
  15. package/dist/cjs/components/FieldSelect/types.d.ts +1 -3
  16. package/dist/cjs/components/FieldSlider/FieldSlider.d.ts +1 -3
  17. package/dist/cjs/components/FieldSlider/FieldSlider.js +3 -5
  18. package/dist/cjs/components/FieldStepper/FieldStepper.d.ts +1 -3
  19. package/dist/cjs/components/FieldStepper/FieldStepper.js +3 -5
  20. package/dist/cjs/components/FieldText/FieldText.d.ts +1 -3
  21. package/dist/cjs/components/FieldText/FieldText.js +3 -5
  22. package/dist/cjs/components/FieldTextArea/FieldTextArea.d.ts +1 -3
  23. package/dist/cjs/components/FieldTextArea/FieldTextArea.js +3 -5
  24. package/dist/cjs/components/FieldTime/FieldTime.d.ts +0 -3
  25. package/dist/cjs/components/FieldTime/FieldTime.js +3 -5
  26. package/dist/esm/components/FieldColor/FieldColor.d.ts +0 -5
  27. package/dist/esm/components/FieldColor/FieldColor.js +2 -2
  28. package/dist/esm/components/FieldDate/FieldDate.d.ts +0 -3
  29. package/dist/esm/components/FieldDate/FieldDate.js +3 -3
  30. package/dist/esm/components/FieldDecorator/FieldDecorator.d.ts +1 -12
  31. package/dist/esm/components/FieldDecorator/FieldDecorator.js +3 -4
  32. package/dist/esm/components/FieldSecure/FieldSecure.d.ts +1 -3
  33. package/dist/esm/components/FieldSecure/FieldSecure.js +2 -2
  34. package/dist/esm/components/FieldSelect/FieldSelectMultiple.d.ts +0 -1
  35. package/dist/esm/components/FieldSelect/FieldSelectMultiple.js +2 -2
  36. package/dist/esm/components/FieldSelect/FieldSelectSingle.d.ts +0 -1
  37. package/dist/esm/components/FieldSelect/FieldSelectSingle.js +2 -2
  38. package/dist/esm/components/FieldSelect/types.d.ts +1 -3
  39. package/dist/esm/components/FieldSlider/FieldSlider.d.ts +1 -3
  40. package/dist/esm/components/FieldSlider/FieldSlider.js +2 -2
  41. package/dist/esm/components/FieldStepper/FieldStepper.d.ts +1 -3
  42. package/dist/esm/components/FieldStepper/FieldStepper.js +2 -2
  43. package/dist/esm/components/FieldText/FieldText.d.ts +1 -3
  44. package/dist/esm/components/FieldText/FieldText.js +2 -2
  45. package/dist/esm/components/FieldTextArea/FieldTextArea.d.ts +1 -3
  46. package/dist/esm/components/FieldTextArea/FieldTextArea.js +2 -2
  47. package/dist/esm/components/FieldTime/FieldTime.d.ts +0 -3
  48. package/dist/esm/components/FieldTime/FieldTime.js +3 -3
  49. package/package.json +8 -8
  50. package/src/components/FieldColor/FieldColor.tsx +1 -5
  51. package/src/components/FieldDate/FieldDate.tsx +1 -15
  52. package/src/components/FieldDecorator/FieldDecorator.tsx +44 -49
  53. package/src/components/FieldSecure/FieldSecure.tsx +1 -5
  54. package/src/components/FieldSelect/FieldSelectMultiple.tsx +0 -2
  55. package/src/components/FieldSelect/FieldSelectSingle.tsx +0 -2
  56. package/src/components/FieldSelect/types.ts +1 -4
  57. package/src/components/FieldSlider/FieldSlider.tsx +0 -5
  58. package/src/components/FieldStepper/FieldStepper.tsx +0 -5
  59. package/src/components/FieldText/FieldText.tsx +0 -5
  60. package/src/components/FieldTextArea/FieldTextArea.tsx +1 -5
  61. package/src/components/FieldTime/FieldTime.tsx +1 -15
@@ -1,5 +1,5 @@
1
1
  import cn from 'classnames';
2
- import { forwardRef, ReactNode } from 'react';
2
+ import { ReactNode } from 'react';
3
3
 
4
4
  import { SIZE } from '@snack-uikit/input-private';
5
5
  import { extractSupportProps, WithSupportProps } from '@snack-uikit/utils';
@@ -25,54 +25,49 @@ export type FieldDecoratorProps = WithSupportProps<
25
25
  FooterProps
26
26
  >;
27
27
 
28
- export const FieldDecorator = forwardRef<HTMLDivElement, FieldDecoratorProps>(
29
- (
30
- {
31
- children,
32
- className,
33
- label,
34
- labelTooltip,
35
- required,
36
- labelFor,
37
- caption,
38
- length,
39
- hint,
40
- disabled,
41
- readonly,
42
- showHintIcon,
43
- labelTooltipPlacement,
44
- size = SIZE.S,
45
- error,
46
- validationState = VALIDATION_STATE.Default,
47
- ...rest
48
- },
49
- ref,
50
- ) => {
51
- const isFieldActive = !disabled && !readonly;
52
- const fieldValidationState = getValidationState({ validationState, error });
28
+ export function FieldDecorator({
29
+ children,
30
+ className,
31
+ label,
32
+ labelTooltip,
33
+ required,
34
+ labelFor,
35
+ caption,
36
+ length,
37
+ hint,
38
+ disabled,
39
+ readonly,
40
+ showHintIcon,
41
+ labelTooltipPlacement,
42
+ size = SIZE.S,
43
+ error,
44
+ validationState = VALIDATION_STATE.Default,
45
+ ...rest
46
+ }: FieldDecoratorProps) {
47
+ const isFieldActive = !disabled && !readonly;
48
+ const fieldValidationState = getValidationState({ validationState, error });
53
49
 
54
- return (
55
- <div className={cn(styles.decorator, className)} {...extractSupportProps(rest)} data-size={size} ref={ref}>
56
- {label && (
57
- <Header
58
- labelTooltipPlacement={labelTooltipPlacement}
59
- required={required}
60
- label={label}
61
- labelTooltip={labelTooltip}
62
- labelFor={labelFor}
63
- caption={caption}
64
- size={size}
65
- />
66
- )}
67
- {children}
68
- <Footer
69
- length={isFieldActive ? length : undefined}
70
- hint={error || hint}
71
- showHintIcon={showHintIcon}
50
+ return (
51
+ <div className={cn(styles.decorator, className)} {...extractSupportProps(rest)} data-size={size}>
52
+ {label && (
53
+ <Header
54
+ labelTooltipPlacement={labelTooltipPlacement}
55
+ required={required}
56
+ label={label}
57
+ labelTooltip={labelTooltip}
58
+ labelFor={labelFor}
59
+ caption={caption}
72
60
  size={size}
73
- validationState={isFieldActive ? fieldValidationState : VALIDATION_STATE.Default}
74
61
  />
75
- </div>
76
- );
77
- },
78
- );
62
+ )}
63
+ {children}
64
+ <Footer
65
+ length={isFieldActive ? length : undefined}
66
+ hint={error || hint}
67
+ showHintIcon={showHintIcon}
68
+ size={size}
69
+ validationState={isFieldActive ? fieldValidationState : VALIDATION_STATE.Default}
70
+ />
71
+ </div>
72
+ );
73
+ }
@@ -1,5 +1,5 @@
1
1
  import mergeRefs from 'merge-refs';
2
- import { ForwardedRef, forwardRef, ReactElement, useMemo, useRef, useState } from 'react';
2
+ import { forwardRef, ReactElement, useMemo, useRef, useState } from 'react';
3
3
 
4
4
  import {
5
5
  InputPrivate,
@@ -55,8 +55,6 @@ type FieldSecureOwnProps = {
55
55
  prefixIcon?: ReactElement;
56
56
  /** Свойство позволяет грузить данные в поле по требованию */
57
57
  asyncValueGetter?(): Promise<string>;
58
- /** Ref для корневой обертки компонента */
59
- decoratorRef?: ForwardedRef<HTMLDivElement>;
60
58
  };
61
59
 
62
60
  export type FieldSecureProps = WithSupportProps<FieldSecureOwnProps & InputProps & WrapperProps>;
@@ -93,7 +91,6 @@ export const FieldSecure = forwardRef<HTMLInputElement, FieldSecureProps>(
93
91
  asyncValueGetter,
94
92
  autoComplete,
95
93
  onCopyButtonClick,
96
- decoratorRef,
97
94
  ...rest
98
95
  },
99
96
  ref,
@@ -208,7 +205,6 @@ export const FieldSecure = forwardRef<HTMLInputElement, FieldSecureProps>(
208
205
  size={size}
209
206
  error={error}
210
207
  validationState={fieldValidationState}
211
- ref={decoratorRef}
212
208
  {...extractSupportProps(rest)}
213
209
  >
214
210
  <FieldContainerPrivate
@@ -53,7 +53,6 @@ export const FieldSelectMultiple = forwardRef<HTMLInputElement, FieldSelectMulti
53
53
  resetSearchOnOptionSelection = true,
54
54
  onOpenChange,
55
55
  selectedOptionFormatter = defaultSelectedOptionFormatter,
56
- decoratorRef,
57
56
  ...rest
58
57
  } = props;
59
58
  const localRef = useRef<HTMLInputElement>(null);
@@ -181,7 +180,6 @@ export const FieldSelectMultiple = forwardRef<HTMLInputElement, FieldSelectMulti
181
180
  {...extractSupportProps(rest)}
182
181
  {...extractFieldDecoratorProps(props)}
183
182
  validationState={fieldValidationState}
184
- ref={decoratorRef}
185
183
  >
186
184
  <Droplist
187
185
  {...extractListProps(props)}
@@ -60,7 +60,6 @@ export const FieldSelectSingle = forwardRef<HTMLInputElement, FieldSelectSingleP
60
60
  selectedOptionFormatter = defaultSelectedOptionFormatter,
61
61
  enableFuzzySearch = true,
62
62
  onCopyButtonClick,
63
- decoratorRef,
64
63
  ...rest
65
64
  } = props;
66
65
  const localRef = useRef<HTMLInputElement>(null);
@@ -197,7 +196,6 @@ export const FieldSelectSingle = forwardRef<HTMLInputElement, FieldSelectSingleP
197
196
  {...extractSupportProps(rest)}
198
197
  {...extractFieldDecoratorProps(props)}
199
198
  validationState={fieldValidationState}
200
- ref={decoratorRef}
201
199
  >
202
200
  <Droplist
203
201
  {...extractListProps(props)}
@@ -1,4 +1,4 @@
1
- import { ForwardedRef, ReactElement, ReactNode } from 'react';
1
+ import { ReactElement, ReactNode } from 'react';
2
2
 
3
3
  import { InputPrivateProps } from '@snack-uikit/input-private';
4
4
  import {
@@ -135,9 +135,6 @@ type FiledSelectCommonProps = WithSupportProps<{
135
135
  onOpenChange?(open: boolean): void;
136
136
 
137
137
  selectedOptionFormatter?: SelectedOptionFormatter;
138
-
139
- /** Ref для корневой обертки компонента */
140
- decoratorRef?: ForwardedRef<HTMLDivElement>;
141
138
  }> &
142
139
  Pick<
143
140
  DroplistProps,
@@ -1,7 +1,6 @@
1
1
  import mergeRefs from 'merge-refs';
2
2
  import {
3
3
  FocusEvent,
4
- ForwardedRef,
5
4
  forwardRef,
6
5
  KeyboardEvent,
7
6
  ReactElement,
@@ -55,8 +54,6 @@ type FieldSliderOwnProps = {
55
54
  prefix?: ReactNode;
56
55
  /** Произвольный постфикс для поля */
57
56
  postfix?: ReactNode;
58
- /** Ref для корневой обертки компонента */
59
- decoratorRef?: ForwardedRef<HTMLDivElement>;
60
57
  };
61
58
 
62
59
  export type FieldSliderProps = WithSupportProps<FieldSliderOwnProps & SliderProps & WrapperProps>;
@@ -109,7 +106,6 @@ export const FieldSlider = forwardRef<HTMLInputElement, FieldSliderProps>(
109
106
  postfixIcon,
110
107
  prefix,
111
108
  postfix,
112
- decoratorRef,
113
109
  ...rest
114
110
  },
115
111
  ref,
@@ -284,7 +280,6 @@ export const FieldSlider = forwardRef<HTMLInputElement, FieldSliderProps>(
284
280
  showHintIcon={showHintIcon}
285
281
  readonly={readonly}
286
282
  size={size}
287
- ref={decoratorRef}
288
283
  {...extractSupportProps(rest)}
289
284
  >
290
285
  <FieldContainerPrivate
@@ -3,7 +3,6 @@ import mergeRefs from 'merge-refs';
3
3
  import {
4
4
  ChangeEvent,
5
5
  FocusEvent,
6
- ForwardedRef,
7
6
  forwardRef,
8
7
  KeyboardEventHandler,
9
8
  MouseEvent,
@@ -60,8 +59,6 @@ type FieldStepperOwnProps = {
60
59
  prefix?: ReactNode;
61
60
  /** Произвольный постфикс для поля */
62
61
  postfix?: ReactNode;
63
- /** Ref для корневой обертки компонента */
64
- decoratorRef?: ForwardedRef<HTMLDivElement>;
65
62
  };
66
63
 
67
64
  export type FieldStepperProps = WithSupportProps<FieldStepperOwnProps & InputProps & WrapperProps>;
@@ -114,7 +111,6 @@ export const FieldStepper = forwardRef<HTMLInputElement, FieldStepperProps>(
114
111
  error,
115
112
  prefix,
116
113
  postfix,
117
- decoratorRef,
118
114
  ...rest
119
115
  },
120
116
  ref,
@@ -227,7 +223,6 @@ export const FieldStepper = forwardRef<HTMLInputElement, FieldStepperProps>(
227
223
  size={size}
228
224
  validationState={fieldValidationState}
229
225
  error={error}
230
- ref={decoratorRef}
231
226
  {...extractSupportProps(rest)}
232
227
  >
233
228
  <Tooltip
@@ -1,6 +1,5 @@
1
1
  import mergeRefs from 'merge-refs';
2
2
  import {
3
- ForwardedRef,
4
3
  forwardRef,
5
4
  KeyboardEventHandler,
6
5
  ReactElement,
@@ -73,8 +72,6 @@ type FieldTextOwnProps = {
73
72
  postfix?: ReactNode;
74
73
  /** Кнопка действия внутри поля */
75
74
  button?: Button;
76
- /** Ref для корневой обертки компонента */
77
- decoratorRef?: ForwardedRef<HTMLDivElement>;
78
75
  };
79
76
 
80
77
  export type FieldTextProps = WithSupportProps<FieldTextOwnProps & InputProps & WrapperProps>;
@@ -114,7 +111,6 @@ export const FieldText = forwardRef<HTMLInputElement, FieldTextProps>(
114
111
  button: buttonProp,
115
112
  onPaste,
116
113
  onKeyDown,
117
- decoratorRef,
118
114
  ...rest
119
115
  },
120
116
  ref,
@@ -228,7 +224,6 @@ export const FieldText = forwardRef<HTMLInputElement, FieldTextProps>(
228
224
  size={size}
229
225
  validationState={fieldValidationState}
230
226
  error={error}
231
- ref={decoratorRef}
232
227
  {...extractSupportProps(rest)}
233
228
  >
234
229
  <FieldContainerPrivate
@@ -1,5 +1,5 @@
1
1
  import mergeRefs from 'merge-refs';
2
- import { ChangeEvent, ForwardedRef, forwardRef, useMemo, useRef } from 'react';
2
+ import { ChangeEvent, forwardRef, useMemo, useRef } from 'react';
3
3
 
4
4
  import { SIZE, useButtonNavigation, useClearButton } from '@snack-uikit/input-private';
5
5
  import { Scroll } from '@snack-uikit/scroll';
@@ -50,8 +50,6 @@ type FieldTextAreaOwnProps = {
50
50
  showClearButton?: boolean;
51
51
  /** Можно ли вводить больше разрешённого кол-ва символов */
52
52
  allowMoreThanMaxLength?: boolean;
53
- /** Ref для корневой обертки компонента */
54
- decoratorRef?: ForwardedRef<HTMLDivElement>;
55
53
  };
56
54
 
57
55
  export type FieldTextAreaProps = WithSupportProps<FieldTextAreaOwnProps & InputProps & WrapperProps>;
@@ -87,7 +85,6 @@ export const FieldTextArea = forwardRef<HTMLTextAreaElement, FieldTextAreaProps>
87
85
  size = SIZE.S,
88
86
  validationState = VALIDATION_STATE.Default,
89
87
  onCopyButtonClick,
90
- decoratorRef,
91
88
  ...rest
92
89
  },
93
90
  ref,
@@ -150,7 +147,6 @@ export const FieldTextArea = forwardRef<HTMLTextAreaElement, FieldTextAreaProps>
150
147
  size={size}
151
148
  error={error}
152
149
  validationState={fieldValidationState}
153
- ref={decoratorRef}
154
150
  {...extractSupportProps(rest)}
155
151
  >
156
152
  <FieldContainerPrivate
@@ -1,15 +1,5 @@
1
1
  import mergeRefs from 'merge-refs';
2
- import {
3
- FocusEvent,
4
- ForwardedRef,
5
- forwardRef,
6
- KeyboardEvent,
7
- MouseEvent,
8
- useCallback,
9
- useEffect,
10
- useMemo,
11
- useRef,
12
- } from 'react';
2
+ import { FocusEvent, forwardRef, KeyboardEvent, MouseEvent, useCallback, useEffect, useMemo, useRef } from 'react';
13
3
  import { useUncontrolledProp } from 'uncontrollable';
14
4
 
15
5
  import { TimePicker, TimePickerProps } from '@snack-uikit/calendar';
@@ -71,8 +61,6 @@ type FieldTimeOwnProps = {
71
61
  * @default true
72
62
  */
73
63
  showClearButton?: boolean;
74
- /** Ref для корневой обертки компонента */
75
- decoratorRef?: ForwardedRef<HTMLDivElement>;
76
64
  };
77
65
 
78
66
  export type FieldTimeProps = WithSupportProps<FieldTimeOwnProps & InputProps & WrapperProps>;
@@ -125,7 +113,6 @@ export const FieldTime = forwardRef<HTMLInputElement, FieldTimeProps>(
125
113
  validationState = VALIDATION_STATE.Default,
126
114
  error,
127
115
  onCopyButtonClick,
128
- decoratorRef,
129
116
  ...rest
130
117
  },
131
118
  ref,
@@ -303,7 +290,6 @@ export const FieldTime = forwardRef<HTMLInputElement, FieldTimeProps>(
303
290
  size={size}
304
291
  error={error}
305
292
  validationState={fieldValidationState}
306
- ref={decoratorRef}
307
293
  {...extractSupportProps(rest)}
308
294
  >
309
295
  <Dropdown