@snack-uikit/fields 0.55.1-preview-ff470bb3.0 → 0.55.1

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/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 0.55.1 (2026-05-07)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **UIIAAS-1866:** reset FieldSelectSingle search on clear ([027c156](https://github.com/cloud-ru-tech/snack-uikit/commit/027c15609e65a814291662dcfefaf997a09d36ca))
12
+
13
+
14
+
15
+
16
+
6
17
  # 0.55.0 (2026-04-21)
7
18
 
8
19
 
package/README.md CHANGED
@@ -732,8 +732,8 @@ FieldStepper в основном предназначен для работы с
732
732
  | selectedOptionFormatter | `SelectedOptionFormatter` | - | |
733
733
  | scrollToSelectedItem | `boolean` | - | Флаг, отвещающий за прокручивание до выбранного элемента |
734
734
  | virtualized | `boolean` | - | Включить виртуализацию на компоненты списка. Рекомендуется если у вас от 1к элементов списка |
735
- | scrollRef | `Ref<HTMLElement>` | - | Ссылка на элемент, обозначающий самый конец прокручиваемого списка |
736
- | scrollContainerRef | `Ref<HTMLElement>` | - | Ссылка на контейнер, который скроллится |
735
+ | scrollRef | `RefObject<HTMLElement>` | - | Ссылка на элемент, обозначающий самый конец прокручиваемого списка |
736
+ | scrollContainerRef | `RefObject<HTMLElement>` | - | Ссылка на контейнер, который скроллится |
737
737
  | untouchableScrollbars | `boolean` | - | Отключает возможность взаимодействовать со скролбарами мышью. |
738
738
  | onScroll | `(event?: Event) => void` | - | Колбек на скролл прокручиваемого списка |
739
739
  | dataFiltered | `boolean` | - | |
@@ -938,7 +938,6 @@ FieldStepper в основном предназначен для работы с
938
938
  | onCopyButtonClick | `() => void` | - | Колбек клика по кнопке Копировать для поля |
939
939
  | showSeconds | `boolean` | true | Показывать ли секунды |
940
940
  | showClearButton | `boolean` | true | Отображение кнопки Очистки поля |
941
- | footerMode | enum TimePickerFooterMode: `"current-and-apply"`, `"apply-only"` | current-and-apply | Режим футера: кнопка «Текущее время» и компактная «Применить», либо одна широкая «Применить» с подписью. |
942
941
  | id | `string` | - | Значение html-атрибута id |
943
942
  | name | `string` | - | Значение html-атрибута name |
944
943
  | disabled | `boolean` | - | Является ли поле деактивированным |
@@ -963,8 +962,8 @@ FieldStepper в основном предназначен для работы с
963
962
  ### Props
964
963
  | name | type | default value | description |
965
964
  |------|------|---------------|-------------|
966
- | __@metadata@2033* | `DecoratorMetadataObject` | - | |
967
- | __@hasInstance@2031* | `(value: any) => boolean` | - | Determines whether the given value inherits from this function if this function was used as a constructor function. A constructor function can control which objects are recognized as its instances by 'instanceof' by overriding this method. |
965
+ | __@metadata@1004* | `DecoratorMetadataObject` | - | |
966
+ | __@hasInstance@1002* | `(value: any) => boolean` | - | Determines whether the given value inherits from this function if this function was used as a constructor function. A constructor function can control which objects are recognized as its instances by 'instanceof' by overriding this method. |
968
967
  | name* | `string` | - | Returns the name of the function. Function names are read-only and can not be changed. |
969
968
  | caller* | `Function` | - | |
970
969
  | arguments* | `any` | - | |
@@ -135,11 +135,12 @@ exports.FieldSelectSingle = (0, react_1.forwardRef)((props, ref) => {
135
135
  const onClear = (0, react_1.useCallback)(() => {
136
136
  var _a;
137
137
  setValue(undefined);
138
+ setInputValue('');
138
139
  (_a = localRef.current) === null || _a === void 0 ? void 0 : _a.focus();
139
140
  if (required) {
140
141
  setOpen(true);
141
142
  }
142
- }, [required, setOpen, setValue]);
143
+ }, [required, setInputValue, setOpen, setValue]);
143
144
  const {
144
145
  ArrowIcon,
145
146
  arrowIconSize
@@ -24,29 +24,9 @@ type FieldTimeOwnProps = {
24
24
  * @default true
25
25
  */
26
26
  showClearButton?: boolean;
27
- } & Pick<TimePickerProps, 'footerMode'>;
27
+ };
28
28
  export type FieldTimeProps = WithSupportProps<FieldTimeOwnProps & InputProps & WrapperProps>;
29
29
  export declare const FieldTime: import("react").ForwardRefExoticComponent<{
30
30
  'data-test-id'?: string;
31
- } & import("react").AriaAttributes & {
32
- /** Открыт time-picker */
33
- open?: boolean;
34
- /** Колбек открытия пикера */
35
- onOpenChange?(value: boolean): void;
36
- /** Значение поля */
37
- value?: TimePickerProps["value"];
38
- /** Колбек смены значения */
39
- onChange?: TimePickerProps["onChangeValue"];
40
- /** Отображение кнопки копирования */
41
- showCopyButton?: boolean;
42
- /** Колбек клика по кнопке Копировать для поля */
43
- onCopyButtonClick?(): void;
44
- /** Показывать ли секунды */
45
- showSeconds?: boolean;
46
- /**
47
- * Отображение кнопки Очистки поля
48
- * @default true
49
- */
50
- showClearButton?: boolean;
51
- } & Pick<TimePickerProps, "footerMode"> & InputProps & WrapperProps & import("react").RefAttributes<HTMLInputElement>>;
31
+ } & import("react").AriaAttributes & FieldTimeOwnProps & InputProps & WrapperProps & import("react").RefAttributes<HTMLInputElement>>;
52
32
  export {};
@@ -78,10 +78,9 @@ exports.FieldTime = (0, react_1.forwardRef)((_a, ref) => {
78
78
  validationState = constants_1.VALIDATION_STATE.Default,
79
79
  error,
80
80
  onCopyButtonClick,
81
- autoFocus,
82
- footerMode
81
+ autoFocus
83
82
  } = _a,
84
- rest = __rest(_a, ["id", "name", "value", "disabled", "readonly", "showCopyButton", "showClearButton", "open", "onOpenChange", "onChange", "onFocus", "onBlur", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "showHintIcon", "showSeconds", "size", "validationState", "error", "onCopyButtonClick", "autoFocus", "footerMode"]);
83
+ rest = __rest(_a, ["id", "name", "value", "disabled", "readonly", "showCopyButton", "showClearButton", "open", "onOpenChange", "onChange", "onFocus", "onBlur", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "showHintIcon", "showSeconds", "size", "validationState", "error", "onCopyButtonClick", "autoFocus"]);
85
84
  const [isOpen, setIsOpen] = (0, uncontrollable_1.useUncontrolledProp)(open, false, onOpenChange);
86
85
  const localRef = (0, react_1.useRef)(null);
87
86
  const clearButtonRef = (0, react_1.useRef)(null);
@@ -265,8 +264,7 @@ exports.FieldTime = (0, react_1.forwardRef)((_a, ref) => {
265
264
  onFocusLeave: handleCalendarFocusLeave,
266
265
  "data-test-id": 'field-time__timepicker',
267
266
  fitToContainer: false,
268
- showSeconds: showSeconds,
269
- footerMode: footerMode
267
+ showSeconds: showSeconds
270
268
  }),
271
269
  children: (0, jsx_runtime_1.jsx)(helperComponents_1.FieldContainerPrivate, {
272
270
  className: styles_module_scss_1.default.container,
@@ -61,11 +61,12 @@ export const FieldSelectSingle = forwardRef((props, ref) => {
61
61
  const onClear = useCallback(() => {
62
62
  var _a;
63
63
  setValue(undefined);
64
+ setInputValue('');
64
65
  (_a = localRef.current) === null || _a === void 0 ? void 0 : _a.focus();
65
66
  if (required) {
66
67
  setOpen(true);
67
68
  }
68
- }, [required, setOpen, setValue]);
69
+ }, [required, setInputValue, setOpen, setValue]);
69
70
  const { ArrowIcon, arrowIconSize } = getArrowIcon({ size, open });
70
71
  const { postfixButtons, inputKeyDownNavigationHandler, buttonsRefs } = useButtons({
71
72
  readonly,
@@ -24,29 +24,9 @@ type FieldTimeOwnProps = {
24
24
  * @default true
25
25
  */
26
26
  showClearButton?: boolean;
27
- } & Pick<TimePickerProps, 'footerMode'>;
27
+ };
28
28
  export type FieldTimeProps = WithSupportProps<FieldTimeOwnProps & InputProps & WrapperProps>;
29
29
  export declare const FieldTime: import("react").ForwardRefExoticComponent<{
30
30
  'data-test-id'?: string;
31
- } & import("react").AriaAttributes & {
32
- /** Открыт time-picker */
33
- open?: boolean;
34
- /** Колбек открытия пикера */
35
- onOpenChange?(value: boolean): void;
36
- /** Значение поля */
37
- value?: TimePickerProps["value"];
38
- /** Колбек смены значения */
39
- onChange?: TimePickerProps["onChangeValue"];
40
- /** Отображение кнопки копирования */
41
- showCopyButton?: boolean;
42
- /** Колбек клика по кнопке Копировать для поля */
43
- onCopyButtonClick?(): void;
44
- /** Показывать ли секунды */
45
- showSeconds?: boolean;
46
- /**
47
- * Отображение кнопки Очистки поля
48
- * @default true
49
- */
50
- showClearButton?: boolean;
51
- } & Pick<TimePickerProps, "footerMode"> & InputProps & WrapperProps & import("react").RefAttributes<HTMLInputElement>>;
31
+ } & import("react").AriaAttributes & FieldTimeOwnProps & InputProps & WrapperProps & import("react").RefAttributes<HTMLInputElement>>;
52
32
  export {};
@@ -40,7 +40,7 @@ const getStringTimeValue = (time, { showSeconds, locale }) => {
40
40
  });
41
41
  };
42
42
  export const FieldTime = forwardRef((_a, ref) => {
43
- var { id, name, value: valueProp, disabled = false, readonly = false, showCopyButton: showCopyButtonProp = true, showClearButton: showClearButtonProp = true, open, onOpenChange, onChange, onFocus, onBlur: onBlurProp, className, label, labelTooltip, labelTooltipPlacement, required = false, caption, hint, showHintIcon, showSeconds = true, size = SIZE.S, validationState = VALIDATION_STATE.Default, error, onCopyButtonClick, autoFocus, footerMode } = _a, rest = __rest(_a, ["id", "name", "value", "disabled", "readonly", "showCopyButton", "showClearButton", "open", "onOpenChange", "onChange", "onFocus", "onBlur", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "showHintIcon", "showSeconds", "size", "validationState", "error", "onCopyButtonClick", "autoFocus", "footerMode"]);
43
+ var { id, name, value: valueProp, disabled = false, readonly = false, showCopyButton: showCopyButtonProp = true, showClearButton: showClearButtonProp = true, open, onOpenChange, onChange, onFocus, onBlur: onBlurProp, className, label, labelTooltip, labelTooltipPlacement, required = false, caption, hint, showHintIcon, showSeconds = true, size = SIZE.S, validationState = VALIDATION_STATE.Default, error, onCopyButtonClick, autoFocus } = _a, rest = __rest(_a, ["id", "name", "value", "disabled", "readonly", "showCopyButton", "showClearButton", "open", "onOpenChange", "onChange", "onFocus", "onBlur", "className", "label", "labelTooltip", "labelTooltipPlacement", "required", "caption", "hint", "showHintIcon", "showSeconds", "size", "validationState", "error", "onCopyButtonClick", "autoFocus"]);
44
44
  const [isOpen, setIsOpen] = useUncontrolledProp(open, false, onOpenChange);
45
45
  const localRef = useRef(null);
46
46
  const clearButtonRef = useRef(null);
@@ -157,5 +157,5 @@ export const FieldTime = forwardRef((_a, ref) => {
157
157
  : {
158
158
  open: showDropList,
159
159
  onOpenChange: setIsOpen,
160
- }), { content: _jsx(TimePicker, { size: size, value: valueProp, onChangeValue: handleSelectTime, navigationStartRef: navigationStartRef, onFocusLeave: handleCalendarFocusLeave, "data-test-id": 'field-time__timepicker', fitToContainer: false, showSeconds: showSeconds, footerMode: footerMode }), children: _jsx(FieldContainerPrivate, { className: styles.container, size: size, validationState: fieldValidationState, disabled: disabled, readonly: readonly, variant: CONTAINER_VARIANT.SingleLine, focused: showDropList, inputRef: localRef, postfix: postfixButtons, children: _jsx(InputPrivate, { ref: mergeRefs(ref, localRef), "data-size": size, value: value || '', placeholder: mask, onChange: handleChange, onFocus: inputHandlers.onFocus, onMouseDown: inputHandlers.onMouseDown, onBlur: onBlur, onKeyDown: handleInputKeyDown, onClick: onClick, disabled: disabled, readonly: readonly, tabIndex: inputTabIndex, type: 'text', inputMode: 'numeric', id: id, name: name, autoFocus: autoFocus, "data-test-id": 'field-time__input' }) }) })) })));
160
+ }), { content: _jsx(TimePicker, { size: size, value: valueProp, onChangeValue: handleSelectTime, navigationStartRef: navigationStartRef, onFocusLeave: handleCalendarFocusLeave, "data-test-id": 'field-time__timepicker', fitToContainer: false, showSeconds: showSeconds }), children: _jsx(FieldContainerPrivate, { className: styles.container, size: size, validationState: fieldValidationState, disabled: disabled, readonly: readonly, variant: CONTAINER_VARIANT.SingleLine, focused: showDropList, inputRef: localRef, postfix: postfixButtons, children: _jsx(InputPrivate, { ref: mergeRefs(ref, localRef), "data-size": size, value: value || '', placeholder: mask, onChange: handleChange, onFocus: inputHandlers.onFocus, onMouseDown: inputHandlers.onMouseDown, onBlur: onBlur, onKeyDown: handleInputKeyDown, onClick: onClick, disabled: disabled, readonly: readonly, tabIndex: inputTabIndex, type: 'text', inputMode: 'numeric', id: id, name: name, autoFocus: autoFocus, "data-test-id": 'field-time__input' }) }) })) })));
161
161
  });
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "title": "Fields",
7
- "version": "0.55.1-preview-ff470bb3.0",
7
+ "version": "0.55.1",
8
8
  "sideEffects": [
9
9
  "*.css",
10
10
  "*.woff",
@@ -37,7 +37,7 @@
37
37
  "scripts": {},
38
38
  "dependencies": {
39
39
  "@snack-uikit/button": "0.19.17",
40
- "@snack-uikit/calendar": "0.13.20-preview-ff470bb3.0",
40
+ "@snack-uikit/calendar": "0.13.19",
41
41
  "@snack-uikit/color-picker": "0.3.55",
42
42
  "@snack-uikit/divider": "3.2.11",
43
43
  "@snack-uikit/dropdown": "0.5.5",
@@ -66,5 +66,5 @@
66
66
  "peerDependencies": {
67
67
  "@snack-uikit/locale": "*"
68
68
  },
69
- "gitHead": "9cb3640f627845ea5054cf3a16998c30419f1691"
69
+ "gitHead": "c1765c936f2bfa4730155604d8b6de68fbea9f19"
70
70
  }
@@ -119,11 +119,12 @@ export const FieldSelectSingle = forwardRef<HTMLInputElement, FieldSelectSingleP
119
119
 
120
120
  const onClear = useCallback(() => {
121
121
  setValue(undefined);
122
+ setInputValue('');
122
123
  localRef.current?.focus();
123
124
  if (required) {
124
125
  setOpen(true);
125
126
  }
126
- }, [required, setOpen, setValue]);
127
+ }, [required, setInputValue, setOpen, setValue]);
127
128
 
128
129
  const { ArrowIcon, arrowIconSize } = getArrowIcon({ size, open });
129
130
 
@@ -61,7 +61,7 @@ type FieldTimeOwnProps = {
61
61
  * @default true
62
62
  */
63
63
  showClearButton?: boolean;
64
- } & Pick<TimePickerProps, 'footerMode'>;
64
+ };
65
65
 
66
66
  export type FieldTimeProps = WithSupportProps<FieldTimeOwnProps & InputProps & WrapperProps>;
67
67
 
@@ -114,7 +114,6 @@ export const FieldTime = forwardRef<HTMLInputElement, FieldTimeProps>(
114
114
  error,
115
115
  onCopyButtonClick,
116
116
  autoFocus,
117
- footerMode,
118
117
  ...rest
119
118
  },
120
119
  ref,
@@ -314,7 +313,6 @@ export const FieldTime = forwardRef<HTMLInputElement, FieldTimeProps>(
314
313
  data-test-id='field-time__timepicker'
315
314
  fitToContainer={false}
316
315
  showSeconds={showSeconds}
317
- footerMode={footerMode}
318
316
  />
319
317
  }
320
318
  >