@hh.ru/magritte-ui-chips-trigger 4.5.2 → 4.5.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.
package/ChipsTrigger.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { LegacyRef, InputHTMLAttributes, ReactElement } from 'react';
2
- import { ChipsTriggerProps } from '@hh.ru/magritte-ui-chips-trigger/types';
2
+ import { ChipsTriggerProps } from './types';
3
3
  declare const ChipsTrigger: (<T>(props: ChipsTriggerProps<T> & Omit<InputHTMLAttributes<HTMLInputElement>, keyof ChipsTriggerProps<T>> & {
4
4
  ref?: LegacyRef<HTMLInputElement>;
5
5
  }) => ReactElement | null) & {
package/ChipsTrigger.js CHANGED
@@ -12,146 +12,256 @@ import { ChevronDownOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';
12
12
  import { useFocus } from '@hh.ru/magritte-ui-input/useFocus';
13
13
  import { useScrollbar, Scrollbar } from '@hh.ru/magritte-ui-scrollbar';
14
14
 
15
- var styles = {"root":"magritte-root___-zVdz_4-5-2","focused":"magritte-focused___0Uzyu_4-5-2","invalid":"magritte-invalid___tVzQV_4-5-2","disabled":"magritte-disabled___UeqcV_4-5-2","label":"magritte-label___j7Trt_4-5-2","field-input":"magritte-field-input___04Cag_4-5-2","fieldInput":"magritte-field-input___04Cag_4-5-2","scrollable-area":"magritte-scrollable-area___-xMF2_4-5-2","scrollableArea":"magritte-scrollable-area___-xMF2_4-5-2","focus-visible":"magritte-focus-visible___ifvAP_4-5-2","focusVisible":"magritte-focus-visible___ifvAP_4-5-2","large":"magritte-large___JIrIy_4-5-2","field":"magritte-field___rlEmn_4-5-2","icon":"magritte-icon___fDMiz_4-5-2","scrollable-area-wrapper":"magritte-scrollable-area-wrapper___hZNQd_4-5-2","scrollableAreaWrapper":"magritte-scrollable-area-wrapper___hZNQd_4-5-2","scrollable-area-wrapper_with-icon":"magritte-scrollable-area-wrapper_with-icon___2VoX9_4-5-2","scrollableAreaWrapperWithIcon":"magritte-scrollable-area-wrapper_with-icon___2VoX9_4-5-2","medium":"magritte-medium___Xk-XB_4-5-2","chips-and-input":"magritte-chips-and-input___qg-Ba_4-5-2","chipsAndInput":"magritte-chips-and-input___qg-Ba_4-5-2","label-wrapper":"magritte-label-wrapper___De7Bm_4-5-2","labelWrapper":"magritte-label-wrapper___De7Bm_4-5-2","icon_expanded":"magritte-icon_expanded___RaOT-_4-5-2","iconExpanded":"magritte-icon_expanded___RaOT-_4-5-2","custom-chip-wrapper":"magritte-custom-chip-wrapper___a9kJ6_4-5-2","customChipWrapper":"magritte-custom-chip-wrapper___a9kJ6_4-5-2"};
15
+ var styles = {"root":"magritte-root___-zVdz_4-5-4","focused":"magritte-focused___0Uzyu_4-5-4","invalid":"magritte-invalid___tVzQV_4-5-4","disabled":"magritte-disabled___UeqcV_4-5-4","label":"magritte-label___j7Trt_4-5-4","field-input":"magritte-field-input___04Cag_4-5-4","fieldInput":"magritte-field-input___04Cag_4-5-4","scrollable-area":"magritte-scrollable-area___-xMF2_4-5-4","scrollableArea":"magritte-scrollable-area___-xMF2_4-5-4","focus-visible":"magritte-focus-visible___ifvAP_4-5-4","focusVisible":"magritte-focus-visible___ifvAP_4-5-4","large":"magritte-large___JIrIy_4-5-4","field":"magritte-field___rlEmn_4-5-4","icon":"magritte-icon___fDMiz_4-5-4","scrollable-area-wrapper":"magritte-scrollable-area-wrapper___hZNQd_4-5-4","scrollableAreaWrapper":"magritte-scrollable-area-wrapper___hZNQd_4-5-4","scrollable-area-wrapper_with-icon":"magritte-scrollable-area-wrapper_with-icon___2VoX9_4-5-4","scrollableAreaWrapperWithIcon":"magritte-scrollable-area-wrapper_with-icon___2VoX9_4-5-4","medium":"magritte-medium___Xk-XB_4-5-4","chips-and-input":"magritte-chips-and-input___qg-Ba_4-5-4","chipsAndInput":"magritte-chips-and-input___qg-Ba_4-5-4","label-wrapper":"magritte-label-wrapper___De7Bm_4-5-4","labelWrapper":"magritte-label-wrapper___De7Bm_4-5-4","icon_expanded":"magritte-icon_expanded___RaOT-_4-5-4","iconExpanded":"magritte-icon_expanded___RaOT-_4-5-4","custom-chip-wrapper":"magritte-custom-chip-wrapper___a9kJ6_4-5-4","customChipWrapper":"magritte-custom-chip-wrapper___a9kJ6_4-5-4"};
16
16
 
17
17
  const focusOnLastChip = (event, chipsContainer, input) => {
18
- if (!chipsContainer || !input) {
19
- return;
20
- }
21
- const nextFocusableElement = findNextFocusableElement(chipsContainer, input, 'left', 'list');
22
- if (nextFocusableElement !== null) {
23
- event.preventDefault();
24
- nextFocusableElement.focus();
25
- }
18
+ if (!chipsContainer || !input) {
19
+ return;
20
+ }
21
+ const nextFocusableElement = findNextFocusableElement(chipsContainer, input, "left", "list");
22
+ if (nextFocusableElement !== null) {
23
+ event.preventDefault();
24
+ nextFocusableElement.focus();
25
+ }
26
26
  };
27
- const ChipLayoutComponentDefault = ({ data: _, ...props }) => (jsx(CustomChip, { ...props }));
28
- const ChipsTriggerComponent = ({ size = 'large', placeholder, disabled, expanded: externalExpanded, toggleExpanded: toggleExternalExpanded, state, chipLayoutComponent, invalid, maxHeight, description, errorMessage, wrapperRef, rightIcon = true, onChange, onFocus, onBlur, onKeyDown, onChangeInput: onChangeInputExternal, allowArbitraryValues = true, 'data-qa': dataQa = 'chips-trigger', deleteButtonAriaLabel: _deleteButtonAriaLabel, 'aria-expanded': ariaExpanded, 'aria-controls': ariaControls, }, ref) => {
29
- const { isMobile } = useBreakpoint();
30
- const [expanded, setExpanded] = useState(false);
31
- const [isFocusVisible, setFocusVisible] = useState(false);
32
- const stateRef = useRef({ hadFocusWhenClicked: false, wasExpandedWhenClicked: false });
33
- const { hasVerticalScroll, verticalScrollbarProps, ...scrollbar } = useScrollbar({
34
- axis: disabled ? 'none' : 'vertical',
35
- });
36
- const chipsRootRef = useRef(null);
37
- const chipsRootRefCallback = useMultipleRefs(wrapperRef, chipsRootRef);
38
- const chipsContainerRef = useRef(null);
39
- const chipsContainerRefCallback = useMultipleRefs(chipsContainerRef, scrollbar.contentWrapperRef);
40
- const inputRef = useRef(null);
41
- const inputRefCallback = useMultipleRefs(inputRef, ref);
42
- const showLabel = state.value === '' && state.chips.length === 0 && placeholder !== '';
43
- const labelId = useId();
44
- const ariaLabeledBy = `chips-trigger-label-${labelId}`;
45
- const deleteButtonAriaTrl = useTranslation('ChipsTrigger', 'delete');
46
- const onChangeInput = useCallback((value) => {
27
+ const ChipLayoutComponentDefault = ({ data: _, ...props }) => /* @__PURE__ */ jsx(CustomChip, { ...props });
28
+ const ChipsTriggerComponent = ({
29
+ size = "large",
30
+ placeholder,
31
+ disabled,
32
+ expanded: externalExpanded,
33
+ toggleExpanded: toggleExternalExpanded,
34
+ state,
35
+ chipLayoutComponent,
36
+ invalid,
37
+ maxHeight,
38
+ description,
39
+ errorMessage,
40
+ wrapperRef,
41
+ rightIcon = true,
42
+ onChange,
43
+ onFocus,
44
+ onBlur,
45
+ onKeyDown,
46
+ onChangeInput: onChangeInputExternal,
47
+ allowArbitraryValues = true,
48
+ "data-qa": dataQa = "chips-trigger",
49
+ deleteButtonAriaLabel: _deleteButtonAriaLabel,
50
+ "aria-expanded": ariaExpanded,
51
+ "aria-controls": ariaControls
52
+ }, ref) => {
53
+ const { isMobile } = useBreakpoint();
54
+ const [expanded, setExpanded] = useState(false);
55
+ const [isFocusVisible, setFocusVisible] = useState(false);
56
+ const stateRef = useRef({ hadFocusWhenClicked: false, wasExpandedWhenClicked: false });
57
+ const { hasVerticalScroll, verticalScrollbarProps, ...scrollbar } = useScrollbar({
58
+ axis: disabled ? "none" : "vertical"
59
+ });
60
+ const chipsRootRef = useRef(null);
61
+ const chipsRootRefCallback = useMultipleRefs(wrapperRef, chipsRootRef);
62
+ const chipsContainerRef = useRef(null);
63
+ const chipsContainerRefCallback = useMultipleRefs(chipsContainerRef, scrollbar.contentWrapperRef);
64
+ const inputRef = useRef(null);
65
+ const inputRefCallback = useMultipleRefs(inputRef, ref);
66
+ const showLabel = state.value === "" && state.chips.length === 0 && placeholder !== "";
67
+ const labelId = useId();
68
+ const ariaLabeledBy = `chips-trigger-label-${labelId}`;
69
+ const deleteButtonAriaTrl = useTranslation("ChipsTrigger", "delete");
70
+ const onChangeInput = useCallback(
71
+ (value) => {
72
+ onChange({
73
+ value,
74
+ chips: state.chips,
75
+ event: { type: "change", modifier: "keyboard" }
76
+ });
77
+ onChangeInputExternal?.(value);
78
+ },
79
+ [state.chips, onChange, onChangeInputExternal]
80
+ );
81
+ const { changeHandler, focusHandler, blurHandler, isFocused } = useFocus(onChangeInput, onFocus, onBlur);
82
+ useEffect(() => {
83
+ if (inputRef.current) {
84
+ setFocusVisible(isFocused && inputRef.current.classList.contains("focus-visible"));
85
+ }
86
+ }, [isFocused]);
87
+ const deleteHandler = useCallback(
88
+ (index) => {
89
+ const chips = [...state.chips];
90
+ const [deletedChip] = chips.splice(index, 1);
91
+ onChange({
92
+ value: state.value,
93
+ chips,
94
+ event: { type: "remove", modifier: "cross", element: deletedChip }
95
+ });
96
+ },
97
+ [onChange, state.chips, state.value]
98
+ );
99
+ const keyDownHandler = useCallback(
100
+ (event) => {
101
+ if (allowArbitraryValues && keyboardMatch(event.nativeEvent, keyboardKeys.Enter)) {
102
+ if (state.value.length === 0) {
103
+ return;
104
+ }
47
105
  onChange({
48
- value,
49
- chips: state.chips,
50
- event: { type: 'change', modifier: 'keyboard' },
106
+ value: "",
107
+ chips: [...state.chips, { value: state.value, userInput: true }],
108
+ event: { type: "add", modifier: "enter" }
51
109
  });
52
- onChangeInputExternal?.(value);
53
- }, [state.chips, onChange, onChangeInputExternal]);
54
- const { changeHandler, focusHandler, blurHandler, isFocused } = useFocus(onChangeInput, onFocus, onBlur);
55
- useEffect(() => {
56
- if (inputRef.current) {
57
- setFocusVisible(isFocused && inputRef.current.classList.contains('focus-visible'));
110
+ onChangeInputExternal?.("");
111
+ }
112
+ if (state.value === "" && keyboardMatch(event.nativeEvent, keyboardKeys.Backspace)) {
113
+ if (state.chips.length === 0) {
114
+ return;
58
115
  }
59
- }, [isFocused]);
60
- const deleteHandler = useCallback((index) => {
61
116
  const chips = [...state.chips];
62
- const [deletedChip] = chips.splice(index, 1);
117
+ const deletedChip = chips.pop();
63
118
  onChange({
64
- value: state.value,
65
- chips,
66
- event: { type: 'remove', modifier: 'cross', element: deletedChip },
119
+ value: state.value,
120
+ chips,
121
+ event: { type: "remove", modifier: "backspace", element: deletedChip }
67
122
  });
68
- }, [onChange, state.chips, state.value]);
69
- const keyDownHandler = useCallback((event) => {
70
- // создаем новый чипс и затираем текстовый инпут
71
- if (allowArbitraryValues && keyboardMatch(event.nativeEvent, keyboardKeys.Enter)) {
72
- if (state.value.length === 0) {
73
- return;
123
+ }
124
+ if (state.value === "" && keyboardMatch(event.nativeEvent, keyboardKeys.ArrowLeft)) {
125
+ focusOnLastChip(event, chipsContainerRef.current, inputRef.current);
126
+ }
127
+ },
128
+ [allowArbitraryValues, onChange, onChangeInputExternal, state]
129
+ );
130
+ const scrollableAreaStyle = maxHeight ? { maxHeight: `${maxHeight - (size === "medium" ? 16 : 24)}px` } : void 0;
131
+ const ChipLayoutComponent = chipLayoutComponent ?? ChipLayoutComponentDefault;
132
+ const showIcon = rightIcon !== false;
133
+ const showCustomIcon = isValidElement(rightIcon);
134
+ return /* @__PURE__ */ jsxs("div", { children: [
135
+ /* @__PURE__ */ jsxs(
136
+ "div",
137
+ {
138
+ ref: chipsRootRefCallback,
139
+ className: classnames(styles.root, styles[size], scrollbar.hoverContainerCssClass, {
140
+ [styles.focused]: isFocused,
141
+ [styles.focusVisible]: isFocusVisible,
142
+ [styles.disabled]: !!disabled,
143
+ [styles.invalid]: !!invalid
144
+ }),
145
+ onFocus: () => {
146
+ if (disabled) {
147
+ return;
148
+ }
149
+ if (!inputRef.current) {
150
+ return;
151
+ }
152
+ setExpanded(true);
153
+ if (document.activeElement === chipsRootRef.current) {
154
+ inputRef.current.focus();
155
+ }
156
+ },
157
+ onBlur: (event) => {
158
+ stateRef.current.hadFocusWhenClicked &&= event.relatedTarget === chipsRootRef.current || event.relatedTarget === inputRef.current;
159
+ setExpanded(false);
160
+ },
161
+ onKeyDown,
162
+ onMouseDown: () => {
163
+ stateRef.current.hadFocusWhenClicked = document.activeElement === inputRef.current;
164
+ stateRef.current.wasExpandedWhenClicked = !!externalExpanded;
165
+ },
166
+ onClick: () => {
167
+ if (stateRef.current.hadFocusWhenClicked && stateRef.current.wasExpandedWhenClicked === externalExpanded) {
168
+ toggleExternalExpanded?.();
169
+ }
170
+ stateRef.current.hadFocusWhenClicked = false;
171
+ stateRef.current.wasExpandedWhenClicked = false;
172
+ },
173
+ tabIndex: disabled ? void 0 : 0,
174
+ "data-qa": dataQa,
175
+ "aria-disabled": disabled,
176
+ children: [
177
+ /* @__PURE__ */ jsx(
178
+ "div",
179
+ {
180
+ style: scrollableAreaStyle,
181
+ className: classnames(styles.scrollableAreaWrapper, {
182
+ [styles.scrollableAreaWrapperWithIcon]: showIcon
183
+ }),
184
+ children: /* @__PURE__ */ jsx(
185
+ "div",
186
+ {
187
+ className: styles.scrollableArea,
188
+ ref: scrollbar.scrollContainerRef,
189
+ children: /* @__PURE__ */ jsxs("div", { ref: chipsContainerRefCallback, className: styles.chipsAndInput, children: [
190
+ state.chips.map((chip, index) => {
191
+ return /* @__PURE__ */ jsx(
192
+ "div",
193
+ {
194
+ className: styles.customChipWrapper,
195
+ onMouseDown: (event) => event.preventDefault(),
196
+ children: /* @__PURE__ */ jsx(
197
+ ChipLayoutComponent,
198
+ {
199
+ Element: "button",
200
+ size: "extra-small",
201
+ onDelete: () => {
202
+ deleteHandler(index);
203
+ },
204
+ dataQaWrapper: `chips-trigger-chip-${chip.value}`,
205
+ deleteButtonAriaLabel: _deleteButtonAriaLabel ?? deleteButtonAriaTrl,
206
+ disabled,
207
+ data: chip.data,
208
+ deleteOnly: true,
209
+ children: chip.label ?? chip.value
210
+ }
211
+ )
212
+ },
213
+ `${chip.value}-${index}`
214
+ );
215
+ }),
216
+ /* @__PURE__ */ jsxs("div", { className: styles.field, children: [
217
+ /* @__PURE__ */ jsx(
218
+ "input",
219
+ {
220
+ ref: inputRefCallback,
221
+ className: styles.fieldInput,
222
+ type: "text",
223
+ disabled,
224
+ value: state.value,
225
+ onKeyDown: keyDownHandler,
226
+ onFocus: focusHandler,
227
+ onBlur: blurHandler,
228
+ onChange: changeHandler,
229
+ "data-qa": "chips-trigger-input",
230
+ readOnly: isMobile,
231
+ "aria-labelledby": showLabel ? ariaLabeledBy : void 0,
232
+ role: "combobox",
233
+ "aria-haspopup": "listbox",
234
+ "aria-autocomplete": "list",
235
+ "aria-expanded": ariaExpanded,
236
+ "aria-controls": ariaControls
237
+ }
238
+ ),
239
+ showLabel && /* @__PURE__ */ jsx("div", { className: styles.labelWrapper, children: /* @__PURE__ */ jsx("label", { className: styles.label, id: ariaLabeledBy, children: placeholder }) })
240
+ ] })
241
+ ] })
242
+ }
243
+ )
74
244
  }
75
- onChange({
76
- value: '',
77
- chips: [...state.chips, { value: state.value, userInput: true }],
78
- event: { type: 'add', modifier: 'enter' },
79
- });
80
- onChangeInputExternal?.('');
81
- }
82
- // удаляем последний созданный чипс
83
- if (state.value === '' && keyboardMatch(event.nativeEvent, keyboardKeys.Backspace)) {
84
- if (state.chips.length === 0) {
85
- return;
245
+ ),
246
+ showIcon && /* @__PURE__ */ jsx(
247
+ "div",
248
+ {
249
+ className: classnames(styles.icon, {
250
+ [styles.iconExpanded]: (expanded || externalExpanded) && !showCustomIcon
251
+ }),
252
+ "data-qa": "chips-trigger-icon",
253
+ children: showCustomIcon ? rightIcon : /* @__PURE__ */ jsx(ChevronDownOutlinedSize24, {})
86
254
  }
87
- const chips = [...state.chips];
88
- const deletedChip = chips.pop();
89
- onChange({
90
- value: state.value,
91
- chips,
92
- event: { type: 'remove', modifier: 'backspace', element: deletedChip },
93
- });
94
- }
95
- // пытаемся найти ближайший чипс для фокуса
96
- if (state.value === '' && keyboardMatch(event.nativeEvent, keyboardKeys.ArrowLeft)) {
97
- focusOnLastChip(event, chipsContainerRef.current, inputRef.current);
98
- }
99
- }, [allowArbitraryValues, onChange, onChangeInputExternal, state]);
100
- // при выставлении высоты учитваем падинги
101
- // иначе высота будет больше значения свойства
102
- const scrollableAreaStyle = maxHeight ? { maxHeight: `${maxHeight - (size === 'medium' ? 16 : 24)}px` } : undefined;
103
- const ChipLayoutComponent = chipLayoutComponent ?? ChipLayoutComponentDefault;
104
- const showIcon = rightIcon !== false;
105
- const showCustomIcon = isValidElement(rightIcon);
106
- return (jsxs("div", { children: [jsxs("div", { ref: chipsRootRefCallback, className: classnames(styles.root, styles[size], scrollbar.hoverContainerCssClass, {
107
- [styles.focused]: isFocused,
108
- [styles.focusVisible]: isFocusVisible,
109
- [styles.disabled]: !!disabled,
110
- [styles.invalid]: !!invalid,
111
- }), onFocus: () => {
112
- if (disabled) {
113
- return;
114
- }
115
- if (!inputRef.current) {
116
- return;
117
- }
118
- setExpanded(true);
119
- // добавляем .focus() еще и тут
120
- // чтобы не сбрасывать фокус во время клика по chip
121
- // или по клику на враппер
122
- if (document.activeElement === chipsRootRef.current) {
123
- inputRef.current.focus();
124
- }
125
- }, onBlur: (event) => {
126
- stateRef.current.hadFocusWhenClicked &&=
127
- event.relatedTarget === chipsRootRef.current || event.relatedTarget === inputRef.current;
128
- setExpanded(false);
129
- }, onKeyDown: onKeyDown, onMouseDown: () => {
130
- // при повторном клике по инпуту в фокусе нужно закрыть дроп
131
- // при этом клик может прийтись на обертку, из-за чего инпут поймает blur и повторный фокус
132
- // что усложняет проверку того, что инпут уже был в фокусе в момент клика
133
- // поэтому в цепочке mouseDown -> blur -> focus -> click храним флаг, что фокус не вышел за пределы компонента
134
- stateRef.current.hadFocusWhenClicked = document.activeElement === inputRef.current;
135
- stateRef.current.wasExpandedWhenClicked = !!externalExpanded;
136
- }, onClick: () => {
137
- if (stateRef.current.hadFocusWhenClicked &&
138
- stateRef.current.wasExpandedWhenClicked === externalExpanded) {
139
- toggleExternalExpanded?.();
140
- }
141
- stateRef.current.hadFocusWhenClicked = false;
142
- stateRef.current.wasExpandedWhenClicked = false;
143
- }, tabIndex: disabled ? undefined : 0, "data-qa": dataQa, "aria-disabled": disabled, children: [jsx("div", { style: scrollableAreaStyle, className: classnames(styles.scrollableAreaWrapper, {
144
- [styles.scrollableAreaWrapperWithIcon]: showIcon,
145
- }), children: jsx("div", { className: styles.scrollableArea, ref: scrollbar.scrollContainerRef, children: jsxs("div", { ref: chipsContainerRefCallback, className: styles.chipsAndInput, children: [state.chips.map((chip, index) => {
146
- return (jsx("div", { className: styles.customChipWrapper, onMouseDown: (event) => event.preventDefault(), children: jsx(ChipLayoutComponent, { Element: "button", size: "extra-small", onDelete: () => {
147
- deleteHandler(index);
148
- }, dataQaWrapper: `chips-trigger-chip-${chip.value}`, deleteButtonAriaLabel: _deleteButtonAriaLabel ?? deleteButtonAriaTrl, disabled: disabled, data: chip.data, deleteOnly: true, children: chip.label ?? chip.value }) }, `${chip.value}-${index}`));
149
- }), jsxs("div", { className: styles.field, children: [jsx("input", { ref: inputRefCallback, className: styles.fieldInput, type: "text", disabled: disabled, value: state.value, onKeyDown: keyDownHandler, onFocus: focusHandler, onBlur: blurHandler, onChange: changeHandler, "data-qa": "chips-trigger-input", readOnly: isMobile, "aria-labelledby": showLabel ? ariaLabeledBy : undefined, role: 'combobox', "aria-haspopup": 'listbox', "aria-autocomplete": 'list', "aria-expanded": ariaExpanded, "aria-controls": ariaControls }), showLabel && (jsx("div", { className: styles.labelWrapper, children: jsx("label", { className: styles.label, id: ariaLabeledBy, children: placeholder }) }))] })] }) }) }), showIcon && (jsx("div", { className: classnames(styles.icon, {
150
- [styles.iconExpanded]: (expanded || externalExpanded) && !showCustomIcon,
151
- }), "data-qa": "chips-trigger-icon", children: showCustomIcon ? rightIcon : jsx(ChevronDownOutlinedSize24, {}) })), hasVerticalScroll && jsx(Scrollbar, { ...verticalScrollbarProps })] }), jsx(FormHelper, { description: description, errorMessage: errorMessage, disabled: disabled, invalid: invalid })] }));
255
+ ),
256
+ hasVerticalScroll && /* @__PURE__ */ jsx(Scrollbar, { ...verticalScrollbarProps })
257
+ ]
258
+ }
259
+ ),
260
+ /* @__PURE__ */ jsx(FormHelper, { description, errorMessage, disabled, invalid })
261
+ ] });
152
262
  };
153
263
  const ChipsTrigger = forwardRef(ChipsTriggerComponent);
154
- ChipsTrigger.displayName = 'ChipsTrigger';
264
+ ChipsTrigger.displayName = "ChipsTrigger";
155
265
 
156
266
  export { ChipsTrigger };
157
267
  //# sourceMappingURL=ChipsTrigger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChipsTrigger.js","sources":["src/ChipsTrigger.tsx"],"sourcesContent":["import {\n ForwardedRef,\n LegacyRef,\n InputHTMLAttributes,\n KeyboardEventHandler,\n ReactElement,\n SyntheticEvent,\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n isValidElement,\n} from 'react';\nimport classnames from 'classnames';\n\nimport { findNextFocusableElement, keyboardKeys, keyboardMatch } from '@hh.ru/magritte-common-keyboard';\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport { useTranslation } from '@hh.ru/magritte-common-use-translation';\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\nimport { CustomChip } from '@hh.ru/magritte-ui-chips';\nimport { ChipCustomLayoutProps, ChipsTriggerProps } from '@hh.ru/magritte-ui-chips-trigger/types';\nimport { FormHelper } from '@hh.ru/magritte-ui-form-helper';\nimport { ChevronDownOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';\nimport { useFocus } from '@hh.ru/magritte-ui-input/useFocus';\nimport { Scrollbar, useScrollbar } from '@hh.ru/magritte-ui-scrollbar';\n\nimport styles from './chips-trigger.less';\n\nconst focusOnLastChip = (event: SyntheticEvent, chipsContainer: HTMLElement | null, input: HTMLElement | null) => {\n if (!chipsContainer || !input) {\n return;\n }\n const nextFocusableElement = findNextFocusableElement(chipsContainer, input, 'left', 'list');\n if (nextFocusableElement !== null) {\n event.preventDefault();\n nextFocusableElement.focus();\n }\n};\n\nconst ChipLayoutComponentDefault = ({ data: _, ...props }: ChipCustomLayoutProps): ReactElement => (\n <CustomChip {...props} />\n);\n\ntype State = {\n hadFocusWhenClicked: boolean;\n wasExpandedWhenClicked: boolean;\n};\n\nconst ChipsTriggerComponent = <T,>(\n {\n size = 'large',\n placeholder,\n disabled,\n expanded: externalExpanded,\n toggleExpanded: toggleExternalExpanded,\n state,\n chipLayoutComponent,\n invalid,\n maxHeight,\n description,\n errorMessage,\n wrapperRef,\n rightIcon = true,\n onChange,\n onFocus,\n onBlur,\n onKeyDown,\n onChangeInput: onChangeInputExternal,\n allowArbitraryValues = true,\n 'data-qa': dataQa = 'chips-trigger',\n deleteButtonAriaLabel: _deleteButtonAriaLabel,\n 'aria-expanded': ariaExpanded,\n 'aria-controls': ariaControls,\n }: ChipsTriggerProps<T> & Omit<InputHTMLAttributes<HTMLInputElement>, keyof ChipsTriggerProps<T>>,\n ref: ForwardedRef<HTMLInputElement>\n) => {\n const { isMobile } = useBreakpoint();\n const [expanded, setExpanded] = useState(false);\n const [isFocusVisible, setFocusVisible] = useState(false);\n const stateRef = useRef<State>({ hadFocusWhenClicked: false, wasExpandedWhenClicked: false });\n\n const { hasVerticalScroll, verticalScrollbarProps, ...scrollbar } = useScrollbar({\n axis: disabled ? 'none' : 'vertical',\n });\n\n const chipsRootRef = useRef<HTMLDivElement>(null);\n const chipsRootRefCallback = useMultipleRefs(wrapperRef, chipsRootRef);\n const chipsContainerRef = useRef<HTMLDivElement>(null);\n const chipsContainerRefCallback = useMultipleRefs(chipsContainerRef, scrollbar.contentWrapperRef);\n const inputRef = useRef<HTMLInputElement>(null);\n const inputRefCallback = useMultipleRefs(inputRef, ref);\n const showLabel = state.value === '' && state.chips.length === 0 && placeholder !== '';\n const labelId = useId();\n const ariaLabeledBy = `chips-trigger-label-${labelId}`;\n const deleteButtonAriaTrl = useTranslation('ChipsTrigger', 'delete');\n\n const onChangeInput = useCallback(\n (value: string) => {\n onChange({\n value,\n chips: state.chips,\n event: { type: 'change', modifier: 'keyboard' },\n });\n onChangeInputExternal?.(value);\n },\n [state.chips, onChange, onChangeInputExternal]\n );\n const { changeHandler, focusHandler, blurHandler, isFocused } = useFocus(onChangeInput, onFocus, onBlur);\n\n useEffect(() => {\n if (inputRef.current) {\n setFocusVisible(isFocused && inputRef.current.classList.contains('focus-visible'));\n }\n }, [isFocused]);\n\n const deleteHandler = useCallback(\n (index: number) => {\n const chips = [...state.chips];\n const [deletedChip] = chips.splice(index, 1);\n onChange({\n value: state.value,\n chips,\n event: { type: 'remove', modifier: 'cross', element: deletedChip },\n });\n },\n [onChange, state.chips, state.value]\n );\n\n const keyDownHandler = useCallback<KeyboardEventHandler>(\n (event) => {\n // создаем новый чипс и затираем текстовый инпут\n if (allowArbitraryValues && keyboardMatch(event.nativeEvent, keyboardKeys.Enter)) {\n if (state.value.length === 0) {\n return;\n }\n onChange({\n value: '',\n chips: [...state.chips, { value: state.value, userInput: true }],\n event: { type: 'add', modifier: 'enter' },\n });\n onChangeInputExternal?.('');\n }\n // удаляем последний созданный чипс\n if (state.value === '' && keyboardMatch(event.nativeEvent, keyboardKeys.Backspace)) {\n if (state.chips.length === 0) {\n return;\n }\n const chips = [...state.chips];\n const deletedChip = chips.pop();\n onChange({\n value: state.value,\n chips,\n event: { type: 'remove', modifier: 'backspace', element: deletedChip },\n });\n }\n // пытаемся найти ближайший чипс для фокуса\n if (state.value === '' && keyboardMatch(event.nativeEvent, keyboardKeys.ArrowLeft)) {\n focusOnLastChip(event, chipsContainerRef.current, inputRef.current);\n }\n },\n [allowArbitraryValues, onChange, onChangeInputExternal, state]\n );\n\n // при выставлении высоты учитваем падинги\n // иначе высота будет больше значения свойства\n const scrollableAreaStyle = maxHeight ? { maxHeight: `${maxHeight - (size === 'medium' ? 16 : 24)}px` } : undefined;\n const ChipLayoutComponent = chipLayoutComponent ?? ChipLayoutComponentDefault;\n\n const showIcon = rightIcon !== false;\n const showCustomIcon = isValidElement(rightIcon);\n\n return (\n <div>\n <div\n ref={chipsRootRefCallback}\n className={classnames(styles.root, styles[size], scrollbar.hoverContainerCssClass, {\n [styles.focused]: isFocused,\n [styles.focusVisible]: isFocusVisible,\n [styles.disabled]: !!disabled,\n [styles.invalid]: !!invalid,\n })}\n onFocus={() => {\n if (disabled) {\n return;\n }\n if (!inputRef.current) {\n return;\n }\n setExpanded(true);\n // добавляем .focus() еще и тут\n // чтобы не сбрасывать фокус во время клика по chip\n // или по клику на враппер\n if (document.activeElement === chipsRootRef.current) {\n inputRef.current.focus();\n }\n }}\n onBlur={(event) => {\n stateRef.current.hadFocusWhenClicked &&=\n event.relatedTarget === chipsRootRef.current || event.relatedTarget === inputRef.current;\n setExpanded(false);\n }}\n onKeyDown={onKeyDown}\n onMouseDown={() => {\n // при повторном клике по инпуту в фокусе нужно закрыть дроп\n // при этом клик может прийтись на обертку, из-за чего инпут поймает blur и повторный фокус\n // что усложняет проверку того, что инпут уже был в фокусе в момент клика\n // поэтому в цепочке mouseDown -> blur -> focus -> click храним флаг, что фокус не вышел за пределы компонента\n stateRef.current.hadFocusWhenClicked = document.activeElement === inputRef.current;\n stateRef.current.wasExpandedWhenClicked = !!externalExpanded;\n }}\n onClick={() => {\n if (\n stateRef.current.hadFocusWhenClicked &&\n stateRef.current.wasExpandedWhenClicked === externalExpanded\n ) {\n toggleExternalExpanded?.();\n }\n stateRef.current.hadFocusWhenClicked = false;\n stateRef.current.wasExpandedWhenClicked = false;\n }}\n tabIndex={disabled ? undefined : 0}\n data-qa={dataQa}\n aria-disabled={disabled}\n >\n <div\n style={scrollableAreaStyle}\n className={classnames(styles.scrollableAreaWrapper, {\n [styles.scrollableAreaWrapperWithIcon]: showIcon,\n })}\n >\n <div\n className={styles.scrollableArea}\n ref={scrollbar.scrollContainerRef as React.Ref<HTMLDivElement>}\n >\n <div ref={chipsContainerRefCallback} className={styles.chipsAndInput}>\n {state.chips.map((chip, index) => {\n return (\n <div\n key={`${chip.value}-${index}`}\n className={styles.customChipWrapper}\n onMouseDown={(event) => event.preventDefault()}\n >\n <ChipLayoutComponent\n Element=\"button\"\n size=\"extra-small\"\n onDelete={() => {\n deleteHandler(index);\n }}\n dataQaWrapper={`chips-trigger-chip-${chip.value}`}\n deleteButtonAriaLabel={_deleteButtonAriaLabel ?? deleteButtonAriaTrl}\n disabled={disabled}\n data={chip.data}\n deleteOnly\n >\n {chip.label ?? chip.value}\n </ChipLayoutComponent>\n </div>\n );\n })}\n <div className={styles.field}>\n <input\n ref={inputRefCallback}\n className={styles.fieldInput}\n type=\"text\"\n disabled={disabled}\n value={state.value}\n onKeyDown={keyDownHandler}\n onFocus={focusHandler}\n onBlur={blurHandler}\n onChange={changeHandler}\n data-qa=\"chips-trigger-input\"\n readOnly={isMobile}\n aria-labelledby={showLabel ? ariaLabeledBy : undefined}\n role={'combobox'}\n aria-haspopup={'listbox'}\n aria-autocomplete={'list'}\n aria-expanded={ariaExpanded}\n aria-controls={ariaControls}\n />\n {showLabel && (\n <div className={styles.labelWrapper}>\n <label className={styles.label} id={ariaLabeledBy}>\n {placeholder}\n </label>\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n {showIcon && (\n <div\n className={classnames(styles.icon, {\n [styles.iconExpanded]: (expanded || externalExpanded) && !showCustomIcon,\n })}\n data-qa=\"chips-trigger-icon\"\n >\n {showCustomIcon ? rightIcon : <ChevronDownOutlinedSize24 />}\n </div>\n )}\n {hasVerticalScroll && <Scrollbar {...verticalScrollbarProps} />}\n </div>\n <FormHelper description={description} errorMessage={errorMessage} disabled={disabled} invalid={invalid} />\n </div>\n );\n};\n\nconst ChipsTrigger = forwardRef(ChipsTriggerComponent) as (<T>(\n props: ChipsTriggerProps<T> &\n Omit<InputHTMLAttributes<HTMLInputElement>, keyof ChipsTriggerProps<T>> & {\n ref?: LegacyRef<HTMLInputElement>;\n }\n) => ReactElement | null) & { displayName: string };\n\nChipsTrigger.displayName = 'ChipsTrigger';\n\nexport { ChipsTrigger };\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"ChipsTrigger.js","sources":["src/ChipsTrigger.tsx"],"sourcesContent":["import {\n ForwardedRef,\n LegacyRef,\n InputHTMLAttributes,\n KeyboardEventHandler,\n ReactElement,\n SyntheticEvent,\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n isValidElement,\n} from 'react';\nimport classnames from 'classnames';\n\nimport { findNextFocusableElement, keyboardKeys, keyboardMatch } from '@hh.ru/magritte-common-keyboard';\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport { useTranslation } from '@hh.ru/magritte-common-use-translation';\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\nimport { CustomChip } from '@hh.ru/magritte-ui-chips';\nimport { ChipCustomLayoutProps, ChipsTriggerProps } from '@hh.ru/magritte-ui-chips-trigger/types';\nimport { FormHelper } from '@hh.ru/magritte-ui-form-helper';\nimport { ChevronDownOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';\nimport { useFocus } from '@hh.ru/magritte-ui-input/useFocus';\nimport { Scrollbar, useScrollbar } from '@hh.ru/magritte-ui-scrollbar';\n\nimport styles from './chips-trigger.less';\n\nconst focusOnLastChip = (event: SyntheticEvent, chipsContainer: HTMLElement | null, input: HTMLElement | null) => {\n if (!chipsContainer || !input) {\n return;\n }\n const nextFocusableElement = findNextFocusableElement(chipsContainer, input, 'left', 'list');\n if (nextFocusableElement !== null) {\n event.preventDefault();\n nextFocusableElement.focus();\n }\n};\n\nconst ChipLayoutComponentDefault = ({ data: _, ...props }: ChipCustomLayoutProps): ReactElement => (\n <CustomChip {...props} />\n);\n\ntype State = {\n hadFocusWhenClicked: boolean;\n wasExpandedWhenClicked: boolean;\n};\n\nconst ChipsTriggerComponent = <T,>(\n {\n size = 'large',\n placeholder,\n disabled,\n expanded: externalExpanded,\n toggleExpanded: toggleExternalExpanded,\n state,\n chipLayoutComponent,\n invalid,\n maxHeight,\n description,\n errorMessage,\n wrapperRef,\n rightIcon = true,\n onChange,\n onFocus,\n onBlur,\n onKeyDown,\n onChangeInput: onChangeInputExternal,\n allowArbitraryValues = true,\n 'data-qa': dataQa = 'chips-trigger',\n deleteButtonAriaLabel: _deleteButtonAriaLabel,\n 'aria-expanded': ariaExpanded,\n 'aria-controls': ariaControls,\n }: ChipsTriggerProps<T> & Omit<InputHTMLAttributes<HTMLInputElement>, keyof ChipsTriggerProps<T>>,\n ref: ForwardedRef<HTMLInputElement>\n) => {\n const { isMobile } = useBreakpoint();\n const [expanded, setExpanded] = useState(false);\n const [isFocusVisible, setFocusVisible] = useState(false);\n const stateRef = useRef<State>({ hadFocusWhenClicked: false, wasExpandedWhenClicked: false });\n\n const { hasVerticalScroll, verticalScrollbarProps, ...scrollbar } = useScrollbar({\n axis: disabled ? 'none' : 'vertical',\n });\n\n const chipsRootRef = useRef<HTMLDivElement>(null);\n const chipsRootRefCallback = useMultipleRefs(wrapperRef, chipsRootRef);\n const chipsContainerRef = useRef<HTMLDivElement>(null);\n const chipsContainerRefCallback = useMultipleRefs(chipsContainerRef, scrollbar.contentWrapperRef);\n const inputRef = useRef<HTMLInputElement>(null);\n const inputRefCallback = useMultipleRefs(inputRef, ref);\n const showLabel = state.value === '' && state.chips.length === 0 && placeholder !== '';\n const labelId = useId();\n const ariaLabeledBy = `chips-trigger-label-${labelId}`;\n const deleteButtonAriaTrl = useTranslation('ChipsTrigger', 'delete');\n\n const onChangeInput = useCallback(\n (value: string) => {\n onChange({\n value,\n chips: state.chips,\n event: { type: 'change', modifier: 'keyboard' },\n });\n onChangeInputExternal?.(value);\n },\n [state.chips, onChange, onChangeInputExternal]\n );\n const { changeHandler, focusHandler, blurHandler, isFocused } = useFocus(onChangeInput, onFocus, onBlur);\n\n useEffect(() => {\n if (inputRef.current) {\n setFocusVisible(isFocused && inputRef.current.classList.contains('focus-visible'));\n }\n }, [isFocused]);\n\n const deleteHandler = useCallback(\n (index: number) => {\n const chips = [...state.chips];\n const [deletedChip] = chips.splice(index, 1);\n onChange({\n value: state.value,\n chips,\n event: { type: 'remove', modifier: 'cross', element: deletedChip },\n });\n },\n [onChange, state.chips, state.value]\n );\n\n const keyDownHandler = useCallback<KeyboardEventHandler>(\n (event) => {\n // создаем новый чипс и затираем текстовый инпут\n if (allowArbitraryValues && keyboardMatch(event.nativeEvent, keyboardKeys.Enter)) {\n if (state.value.length === 0) {\n return;\n }\n onChange({\n value: '',\n chips: [...state.chips, { value: state.value, userInput: true }],\n event: { type: 'add', modifier: 'enter' },\n });\n onChangeInputExternal?.('');\n }\n // удаляем последний созданный чипс\n if (state.value === '' && keyboardMatch(event.nativeEvent, keyboardKeys.Backspace)) {\n if (state.chips.length === 0) {\n return;\n }\n const chips = [...state.chips];\n const deletedChip = chips.pop();\n onChange({\n value: state.value,\n chips,\n event: { type: 'remove', modifier: 'backspace', element: deletedChip },\n });\n }\n // пытаемся найти ближайший чипс для фокуса\n if (state.value === '' && keyboardMatch(event.nativeEvent, keyboardKeys.ArrowLeft)) {\n focusOnLastChip(event, chipsContainerRef.current, inputRef.current);\n }\n },\n [allowArbitraryValues, onChange, onChangeInputExternal, state]\n );\n\n // при выставлении высоты учитваем падинги\n // иначе высота будет больше значения свойства\n const scrollableAreaStyle = maxHeight ? { maxHeight: `${maxHeight - (size === 'medium' ? 16 : 24)}px` } : undefined;\n const ChipLayoutComponent = chipLayoutComponent ?? ChipLayoutComponentDefault;\n\n const showIcon = rightIcon !== false;\n const showCustomIcon = isValidElement(rightIcon);\n\n return (\n <div>\n <div\n ref={chipsRootRefCallback}\n className={classnames(styles.root, styles[size], scrollbar.hoverContainerCssClass, {\n [styles.focused]: isFocused,\n [styles.focusVisible]: isFocusVisible,\n [styles.disabled]: !!disabled,\n [styles.invalid]: !!invalid,\n })}\n onFocus={() => {\n if (disabled) {\n return;\n }\n if (!inputRef.current) {\n return;\n }\n setExpanded(true);\n // добавляем .focus() еще и тут\n // чтобы не сбрасывать фокус во время клика по chip\n // или по клику на враппер\n if (document.activeElement === chipsRootRef.current) {\n inputRef.current.focus();\n }\n }}\n onBlur={(event) => {\n stateRef.current.hadFocusWhenClicked &&=\n event.relatedTarget === chipsRootRef.current || event.relatedTarget === inputRef.current;\n setExpanded(false);\n }}\n onKeyDown={onKeyDown}\n onMouseDown={() => {\n // при повторном клике по инпуту в фокусе нужно закрыть дроп\n // при этом клик может прийтись на обертку, из-за чего инпут поймает blur и повторный фокус\n // что усложняет проверку того, что инпут уже был в фокусе в момент клика\n // поэтому в цепочке mouseDown -> blur -> focus -> click храним флаг, что фокус не вышел за пределы компонента\n stateRef.current.hadFocusWhenClicked = document.activeElement === inputRef.current;\n stateRef.current.wasExpandedWhenClicked = !!externalExpanded;\n }}\n onClick={() => {\n if (\n stateRef.current.hadFocusWhenClicked &&\n stateRef.current.wasExpandedWhenClicked === externalExpanded\n ) {\n toggleExternalExpanded?.();\n }\n stateRef.current.hadFocusWhenClicked = false;\n stateRef.current.wasExpandedWhenClicked = false;\n }}\n tabIndex={disabled ? undefined : 0}\n data-qa={dataQa}\n aria-disabled={disabled}\n >\n <div\n style={scrollableAreaStyle}\n className={classnames(styles.scrollableAreaWrapper, {\n [styles.scrollableAreaWrapperWithIcon]: showIcon,\n })}\n >\n <div\n className={styles.scrollableArea}\n ref={scrollbar.scrollContainerRef as React.Ref<HTMLDivElement>}\n >\n <div ref={chipsContainerRefCallback} className={styles.chipsAndInput}>\n {state.chips.map((chip, index) => {\n return (\n <div\n key={`${chip.value}-${index}`}\n className={styles.customChipWrapper}\n onMouseDown={(event) => event.preventDefault()}\n >\n <ChipLayoutComponent\n Element=\"button\"\n size=\"extra-small\"\n onDelete={() => {\n deleteHandler(index);\n }}\n dataQaWrapper={`chips-trigger-chip-${chip.value}`}\n deleteButtonAriaLabel={_deleteButtonAriaLabel ?? deleteButtonAriaTrl}\n disabled={disabled}\n data={chip.data}\n deleteOnly\n >\n {chip.label ?? chip.value}\n </ChipLayoutComponent>\n </div>\n );\n })}\n <div className={styles.field}>\n <input\n ref={inputRefCallback}\n className={styles.fieldInput}\n type=\"text\"\n disabled={disabled}\n value={state.value}\n onKeyDown={keyDownHandler}\n onFocus={focusHandler}\n onBlur={blurHandler}\n onChange={changeHandler}\n data-qa=\"chips-trigger-input\"\n readOnly={isMobile}\n aria-labelledby={showLabel ? ariaLabeledBy : undefined}\n role={'combobox'}\n aria-haspopup={'listbox'}\n aria-autocomplete={'list'}\n aria-expanded={ariaExpanded}\n aria-controls={ariaControls}\n />\n {showLabel && (\n <div className={styles.labelWrapper}>\n <label className={styles.label} id={ariaLabeledBy}>\n {placeholder}\n </label>\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n {showIcon && (\n <div\n className={classnames(styles.icon, {\n [styles.iconExpanded]: (expanded || externalExpanded) && !showCustomIcon,\n })}\n data-qa=\"chips-trigger-icon\"\n >\n {showCustomIcon ? rightIcon : <ChevronDownOutlinedSize24 />}\n </div>\n )}\n {hasVerticalScroll && <Scrollbar {...verticalScrollbarProps} />}\n </div>\n <FormHelper description={description} errorMessage={errorMessage} disabled={disabled} invalid={invalid} />\n </div>\n );\n};\n\nconst ChipsTrigger = forwardRef(ChipsTriggerComponent) as (<T>(\n props: ChipsTriggerProps<T> &\n Omit<InputHTMLAttributes<HTMLInputElement>, keyof ChipsTriggerProps<T>> & {\n ref?: LegacyRef<HTMLInputElement>;\n }\n) => ReactElement | null) & { displayName: string };\n\nChipsTrigger.displayName = 'ChipsTrigger';\n\nexport { ChipsTrigger };\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { LegacyRef, ReactElement, InputHTMLAttributes } from 'react';
2
- import { UncontrolledChipsTriggerProps } from '@hh.ru/magritte-ui-chips-trigger/types';
2
+ import { UncontrolledChipsTriggerProps } from './types';
3
3
  declare const UncontrolledChipsTrigger: (<T>(props: UncontrolledChipsTriggerProps<T> & Omit<InputHTMLAttributes<HTMLInputElement>, keyof UncontrolledChipsTriggerProps<T>> & {
4
4
  ref?: LegacyRef<HTMLInputElement>;
5
5
  }) => ReactElement | null) & {
@@ -14,18 +14,34 @@ import '@hh.ru/magritte-ui-input/useFocus';
14
14
  import '@hh.ru/magritte-ui-scrollbar';
15
15
 
16
16
  const DEFAULT_STATE = {
17
- value: '',
18
- chips: [],
17
+ value: "",
18
+ chips: []
19
19
  };
20
- const UncontrolledChipsTriggerComponent = ({ state: defaultState = DEFAULT_STATE, onChange, name, ...restProps }, ref) => {
21
- const [state, setState] = useState({ ...defaultState });
22
- return (jsxs(Fragment, { children: [jsx(ChipsTrigger, { ...restProps, state: state, onChange: (newState) => {
23
- setState(newState);
24
- onChange?.(newState);
25
- }, ref: ref }), state.chips.map((chip) => (jsx("input", { type: "hidden", name: name, value: chip.value }, chip.value)))] }));
20
+ const UncontrolledChipsTriggerComponent = ({
21
+ state: defaultState = DEFAULT_STATE,
22
+ onChange,
23
+ name,
24
+ ...restProps
25
+ }, ref) => {
26
+ const [state, setState] = useState({ ...defaultState });
27
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
28
+ /* @__PURE__ */ jsx(
29
+ ChipsTrigger,
30
+ {
31
+ ...restProps,
32
+ state,
33
+ onChange: (newState) => {
34
+ setState(newState);
35
+ onChange?.(newState);
36
+ },
37
+ ref
38
+ }
39
+ ),
40
+ state.chips.map((chip) => /* @__PURE__ */ jsx("input", { type: "hidden", name, value: chip.value }, chip.value))
41
+ ] });
26
42
  };
27
43
  const UncontrolledChipsTrigger = forwardRef(UncontrolledChipsTriggerComponent);
28
- UncontrolledChipsTrigger.displayName = 'UncontrolledChipsTrigger';
44
+ UncontrolledChipsTrigger.displayName = "UncontrolledChipsTrigger";
29
45
 
30
46
  export { UncontrolledChipsTrigger };
31
47
  //# sourceMappingURL=UncontrolledChipsTrigger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UncontrolledChipsTrigger.js","sources":["src/UncontrolledChipsTrigger.tsx"],"sourcesContent":["import { ForwardedRef, LegacyRef, ReactElement, forwardRef, InputHTMLAttributes, useState } from 'react';\n\nimport { ChipsTrigger } from '@hh.ru/magritte-ui-chips-trigger/ChipsTrigger';\nimport { UncontrolledChipsTriggerProps, ChipsTriggerState } from '@hh.ru/magritte-ui-chips-trigger/types';\n\nconst DEFAULT_STATE = {\n value: '',\n chips: [],\n};\n\nconst UncontrolledChipsTriggerComponent = <T,>(\n {\n state: defaultState = DEFAULT_STATE,\n onChange,\n name,\n ...restProps\n }: UncontrolledChipsTriggerProps<T> &\n Omit<InputHTMLAttributes<HTMLInputElement>, keyof UncontrolledChipsTriggerProps<T>>,\n ref: ForwardedRef<HTMLInputElement>\n) => {\n const [state, setState] = useState<ChipsTriggerState<T>>({ ...defaultState });\n return (\n <>\n <ChipsTrigger\n {...restProps}\n state={state}\n onChange={(newState) => {\n setState(newState);\n onChange?.(newState);\n }}\n ref={ref}\n />\n {state.chips.map((chip) => (\n <input type=\"hidden\" name={name} value={chip.value} key={chip.value} />\n ))}\n </>\n );\n};\n\nconst UncontrolledChipsTrigger = forwardRef(UncontrolledChipsTriggerComponent) as (<T>(\n props: UncontrolledChipsTriggerProps<T> &\n Omit<InputHTMLAttributes<HTMLInputElement>, keyof UncontrolledChipsTriggerProps<T>> & {\n ref?: LegacyRef<HTMLInputElement>;\n }\n) => ReactElement | null) & { displayName: string };\n\nUncontrolledChipsTrigger.displayName = 'UncontrolledChipsTrigger';\n\nexport { UncontrolledChipsTrigger };\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":";;;;;;;;;;;;;;AAKA,MAAM,aAAa,GAAG;AAClB,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,KAAK,EAAE,EAAE;CACZ,CAAC;AAEF,MAAM,iCAAiC,GAAG,CACtC,EACI,KAAK,EAAE,YAAY,GAAG,aAAa,EACnC,QAAQ,EACR,IAAI,EACJ,GAAG,SAAS,EAEuE,EACvF,GAAmC,KACnC;AACA,IAAA,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAuB,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;AAC9E,IAAA,QACIA,IACI,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CAAAC,GAAA,CAAC,YAAY,EAAA,EAAA,GACL,SAAS,EACb,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,QAAQ,KAAI;oBACnB,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACnB,oBAAA,QAAQ,GAAG,QAAQ,CAAC,CAAC;AACzB,iBAAC,EACD,GAAG,EAAE,GAAG,EACV,CAAA,EACD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MAClBA,GAAO,CAAA,OAAA,EAAA,EAAA,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAO,EAAA,IAAI,CAAC,KAAK,CAAI,CAC1E,CAAC,CAAA,EAAA,CACH,EACL;AACN,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,UAAU,CAAC,iCAAiC,EAKzB;AAEpD,wBAAwB,CAAC,WAAW,GAAG,0BAA0B;;;;"}
1
+ {"version":3,"file":"UncontrolledChipsTrigger.js","sources":["src/UncontrolledChipsTrigger.tsx"],"sourcesContent":["import { ForwardedRef, LegacyRef, ReactElement, forwardRef, InputHTMLAttributes, useState } from 'react';\n\nimport { ChipsTrigger } from '@hh.ru/magritte-ui-chips-trigger/ChipsTrigger';\nimport { UncontrolledChipsTriggerProps, ChipsTriggerState } from '@hh.ru/magritte-ui-chips-trigger/types';\n\nconst DEFAULT_STATE = {\n value: '',\n chips: [],\n};\n\nconst UncontrolledChipsTriggerComponent = <T,>(\n {\n state: defaultState = DEFAULT_STATE,\n onChange,\n name,\n ...restProps\n }: UncontrolledChipsTriggerProps<T> &\n Omit<InputHTMLAttributes<HTMLInputElement>, keyof UncontrolledChipsTriggerProps<T>>,\n ref: ForwardedRef<HTMLInputElement>\n) => {\n const [state, setState] = useState<ChipsTriggerState<T>>({ ...defaultState });\n return (\n <>\n <ChipsTrigger\n {...restProps}\n state={state}\n onChange={(newState) => {\n setState(newState);\n onChange?.(newState);\n }}\n ref={ref}\n />\n {state.chips.map((chip) => (\n <input type=\"hidden\" name={name} value={chip.value} key={chip.value} />\n ))}\n </>\n );\n};\n\nconst UncontrolledChipsTrigger = forwardRef(UncontrolledChipsTriggerComponent) as (<T>(\n props: UncontrolledChipsTriggerProps<T> &\n Omit<InputHTMLAttributes<HTMLInputElement>, keyof UncontrolledChipsTriggerProps<T>> & {\n ref?: LegacyRef<HTMLInputElement>;\n }\n) => ReactElement | null) & { displayName: string };\n\nUncontrolledChipsTrigger.displayName = 'UncontrolledChipsTrigger';\n\nexport { UncontrolledChipsTrigger };\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAKA,MAAM,aAAgB,GAAA;AAAA,EAClB,KAAO,EAAA,EAAA;AAAA,EACP,OAAO,EAAC;AACZ,CAAA,CAAA;AAEA,MAAM,oCAAoC,CACtC;AAAA,EACI,OAAO,YAAe,GAAA,aAAA;AAAA,EACtB,QAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAG,SAAA;AACP,CAAA,EAEA,GACC,KAAA;AACD,EAAM,MAAA,CAAC,OAAO,QAAQ,CAAA,GAAI,SAA+B,EAAE,GAAG,cAAc,CAAA,CAAA;AAC5E,EAAA,uBAEQ,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACI,GAAG,SAAA;AAAA,QACJ,KAAA;AAAA,QACA,QAAA,EAAU,CAAC,QAAa,KAAA;AACpB,UAAA,QAAA,CAAS,QAAQ,CAAA,CAAA;AACjB,UAAA,QAAA,GAAW,QAAQ,CAAA,CAAA;AAAA,SACvB;AAAA,QACA,GAAA;AAAA,OAAA;AAAA,KACJ;AAAA,IACC,KAAM,CAAA,KAAA,CAAM,GAAI,CAAA,CAAC,yBACb,GAAA,CAAA,OAAA,EAAA,EAAM,IAAK,EAAA,QAAA,EAAS,MAAY,KAAO,EAAA,IAAA,CAAK,KAAY,EAAA,EAAA,IAAA,CAAK,KAAO,CACxE,CAAA;AAAA,GACL,EAAA,CAAA,CAAA;AAER,CAAA,CAAA;AAEM,MAAA,wBAAA,GAA2B,WAAW,iCAAiC,EAAA;AAO7E,wBAAA,CAAyB,WAAc,GAAA,0BAAA;;;;"}
package/index.css CHANGED
@@ -1,74 +1,74 @@
1
1
  :root{
2
- --magritte-color-component-input-stroke-state-field-hovered-v26-0-0:#CCD5DF;
3
- --magritte-color-component-input-stroke-state-field-focused-v26-0-0:#0070ff;
4
- --magritte-color-component-input-stroke-state-accent-focused-accessible-v26-0-0:#0070ff7a;
5
- --magritte-color-component-input-stroke-state-field-invalid-v26-0-0:#ff4d3a;
6
- --magritte-color-component-input-stroke-state-negative-focused-accessible-v26-0-0:#ff4d3a7a;
7
- --magritte-color-component-input-stroke-state-field-disabled-v26-0-0:#EEF1F7;
8
- --magritte-color-component-input-background-field-v26-0-0:#ffffff;
9
- --magritte-color-component-input-background-state-field-hovered-v26-0-0:#ffffff;
10
- --magritte-color-component-input-background-state-field-focused-v26-0-0:#ffffff;
11
- --magritte-color-component-input-background-state-field-invalid-v26-0-0:#ffffff;
12
- --magritte-color-component-input-background-state-field-disabled-v26-0-0:#F4F6FB;
13
- --magritte-color-component-input-stroke-field-v26-0-0:#DCE3EB;
14
- --magritte-color-component-input-text-state-content-disabled-v26-0-0:#AABBCA;
15
- --magritte-color-component-input-text-state-placeholder-disabled-v26-0-0:#AABBCA;
16
- --magritte-color-component-input-text-state-content-hovered-v26-0-0:#000000;
17
- --magritte-color-component-input-text-state-content-focused-v26-0-0:#000000;
18
- --magritte-color-component-input-text-state-content-invalid-v26-0-0:#000000;
19
- --magritte-color-component-input-text-state-placeholder-hovered-v26-0-0:#768694;
20
- --magritte-color-component-input-text-state-placeholder-focused-v26-0-0:#AABBCA;
21
- --magritte-color-component-input-text-state-placeholder-invalid-v26-0-0:#AABBCA;
22
- --magritte-color-component-input-icon-chevron-v26-0-0:#AABBCA;
23
- --magritte-color-component-input-icon-state-chevron-focused-v26-0-0:#000000;
24
- --magritte-color-component-input-icon-state-chevron-hovered-v26-0-0:#6a7885;
25
- --magritte-color-component-input-icon-state-chevron-disabled-v26-0-0:#AABBCA;
26
- --magritte-color-component-input-icon-state-chevron-invalid-v26-0-0:#AABBCA;
27
- --magritte-color-component-input-text-content-v26-0-0:#000000;
28
- --magritte-color-component-input-text-placeholder-v26-0-0:#AABBCA;
29
- --magritte-color-component-input-chips-background-state-neutral-disable-v26-0-0:#DCE3EB;
30
- --magritte-color-component-input-chips-text-state-neutral-disable-v26-0-0:#96aabb;
2
+ --magritte-color-component-input-stroke-state-field-hovered-v26-0-2:#CCD5DF;
3
+ --magritte-color-component-input-stroke-state-field-focused-v26-0-2:#0070ff;
4
+ --magritte-color-component-input-stroke-state-accent-focused-accessible-v26-0-2:#0070ff7a;
5
+ --magritte-color-component-input-stroke-state-field-invalid-v26-0-2:#ff4d3a;
6
+ --magritte-color-component-input-stroke-state-negative-focused-accessible-v26-0-2:#ff4d3a7a;
7
+ --magritte-color-component-input-stroke-state-field-disabled-v26-0-2:#EEF1F7;
8
+ --magritte-color-component-input-background-field-v26-0-2:#ffffff;
9
+ --magritte-color-component-input-background-state-field-hovered-v26-0-2:#ffffff;
10
+ --magritte-color-component-input-background-state-field-focused-v26-0-2:#ffffff;
11
+ --magritte-color-component-input-background-state-field-invalid-v26-0-2:#ffffff;
12
+ --magritte-color-component-input-background-state-field-disabled-v26-0-2:#F4F6FB;
13
+ --magritte-color-component-input-stroke-field-v26-0-2:#DCE3EB;
14
+ --magritte-color-component-input-text-state-content-disabled-v26-0-2:#AABBCA;
15
+ --magritte-color-component-input-text-state-placeholder-disabled-v26-0-2:#AABBCA;
16
+ --magritte-color-component-input-text-state-content-hovered-v26-0-2:#000000;
17
+ --magritte-color-component-input-text-state-content-focused-v26-0-2:#000000;
18
+ --magritte-color-component-input-text-state-content-invalid-v26-0-2:#000000;
19
+ --magritte-color-component-input-text-state-placeholder-hovered-v26-0-2:#768694;
20
+ --magritte-color-component-input-text-state-placeholder-focused-v26-0-2:#AABBCA;
21
+ --magritte-color-component-input-text-state-placeholder-invalid-v26-0-2:#AABBCA;
22
+ --magritte-color-component-input-icon-chevron-v26-0-2:#AABBCA;
23
+ --magritte-color-component-input-icon-state-chevron-focused-v26-0-2:#000000;
24
+ --magritte-color-component-input-icon-state-chevron-hovered-v26-0-2:#6a7885;
25
+ --magritte-color-component-input-icon-state-chevron-disabled-v26-0-2:#AABBCA;
26
+ --magritte-color-component-input-icon-state-chevron-invalid-v26-0-2:#AABBCA;
27
+ --magritte-color-component-input-text-content-v26-0-2:#000000;
28
+ --magritte-color-component-input-text-placeholder-v26-0-2:#AABBCA;
29
+ --magritte-color-component-input-chips-background-state-neutral-disable-v26-0-2:#DCE3EB;
30
+ --magritte-color-component-input-chips-text-state-neutral-disable-v26-0-2:#96aabb;
31
31
  }
32
32
 
33
33
  :root{
34
- --magritte-semantic-animation-ease-in-out-100-timing-function-v26-0-0:cubic-bezier(0.25, 0.1, 0.25, 1);
35
- --magritte-semantic-animation-ease-in-out-100-duration-v26-0-0:100ms;
34
+ --magritte-semantic-animation-ease-in-out-100-timing-function-v26-0-2:cubic-bezier(0.25, 0.1, 0.25, 1);
35
+ --magritte-semantic-animation-ease-in-out-100-duration-v26-0-2:100ms;
36
36
  }
37
37
 
38
38
  .magritte-night-theme{
39
- --magritte-color-component-input-stroke-state-field-hovered-v26-0-0:#3B3B3B;
40
- --magritte-color-component-input-stroke-state-field-disabled-v26-0-0:#1B1B1B;
41
- --magritte-color-component-input-background-field-v26-0-0:#111;
42
- --magritte-color-component-input-background-state-field-hovered-v26-0-0:#111;
43
- --magritte-color-component-input-background-state-field-focused-v26-0-0:#111;
44
- --magritte-color-component-input-background-state-field-invalid-v26-0-0:#111;
45
- --magritte-color-component-input-background-state-field-disabled-v26-0-0:#111;
46
- --magritte-color-component-input-stroke-field-v26-0-0:#303030;
47
- --magritte-color-component-input-text-content-v26-0-0:#ffffff;
48
- --magritte-color-component-input-text-placeholder-v26-0-0:#535353;
49
- --magritte-color-component-input-text-state-content-disabled-v26-0-0:#474747;
50
- --magritte-color-component-input-text-state-placeholder-disabled-v26-0-0:#474747;
51
- --magritte-color-component-input-text-state-content-hovered-v26-0-0:#ffffff;
52
- --magritte-color-component-input-text-state-content-focused-v26-0-0:#ffffff;
53
- --magritte-color-component-input-text-state-content-invalid-v26-0-0:#ffffff;
54
- --magritte-color-component-input-text-state-placeholder-hovered-v26-0-0:#5E5E5E;
55
- --magritte-color-component-input-text-state-placeholder-focused-v26-0-0:#535353;
56
- --magritte-color-component-input-text-state-placeholder-invalid-v26-0-0:#535353;
57
- --magritte-color-component-input-icon-state-chevron-disabled-v26-0-0:#474747;
58
- --magritte-color-component-input-icon-state-chevron-hovered-v26-0-0:#848484;
59
- --magritte-color-component-input-icon-state-chevron-focused-v26-0-0:#ffffff;
60
- --magritte-color-component-input-icon-state-chevron-invalid-v26-0-0:#474747;
61
- --magritte-color-component-input-icon-chevron-v26-0-0:#5E5E5E;
62
- --magritte-color-component-input-chips-background-state-neutral-disable-v26-0-0:#1B1B1B;
63
- --magritte-color-component-input-chips-text-state-neutral-disable-v26-0-0:#474747;
39
+ --magritte-color-component-input-stroke-state-field-hovered-v26-0-2:#3B3B3B;
40
+ --magritte-color-component-input-stroke-state-field-disabled-v26-0-2:#1B1B1B;
41
+ --magritte-color-component-input-background-field-v26-0-2:#111;
42
+ --magritte-color-component-input-background-state-field-hovered-v26-0-2:#111;
43
+ --magritte-color-component-input-background-state-field-focused-v26-0-2:#111;
44
+ --magritte-color-component-input-background-state-field-invalid-v26-0-2:#111;
45
+ --magritte-color-component-input-background-state-field-disabled-v26-0-2:#111;
46
+ --magritte-color-component-input-stroke-field-v26-0-2:#303030;
47
+ --magritte-color-component-input-text-content-v26-0-2:#ffffff;
48
+ --magritte-color-component-input-text-placeholder-v26-0-2:#535353;
49
+ --magritte-color-component-input-text-state-content-disabled-v26-0-2:#474747;
50
+ --magritte-color-component-input-text-state-placeholder-disabled-v26-0-2:#474747;
51
+ --magritte-color-component-input-text-state-content-hovered-v26-0-2:#ffffff;
52
+ --magritte-color-component-input-text-state-content-focused-v26-0-2:#ffffff;
53
+ --magritte-color-component-input-text-state-content-invalid-v26-0-2:#ffffff;
54
+ --magritte-color-component-input-text-state-placeholder-hovered-v26-0-2:#5E5E5E;
55
+ --magritte-color-component-input-text-state-placeholder-focused-v26-0-2:#535353;
56
+ --magritte-color-component-input-text-state-placeholder-invalid-v26-0-2:#535353;
57
+ --magritte-color-component-input-icon-state-chevron-disabled-v26-0-2:#474747;
58
+ --magritte-color-component-input-icon-state-chevron-hovered-v26-0-2:#848484;
59
+ --magritte-color-component-input-icon-state-chevron-focused-v26-0-2:#ffffff;
60
+ --magritte-color-component-input-icon-state-chevron-invalid-v26-0-2:#474747;
61
+ --magritte-color-component-input-icon-chevron-v26-0-2:#5E5E5E;
62
+ --magritte-color-component-input-chips-background-state-neutral-disable-v26-0-2:#1B1B1B;
63
+ --magritte-color-component-input-chips-text-state-neutral-disable-v26-0-2:#474747;
64
64
  }
65
65
 
66
66
  .magritte-zp-day-theme{
67
- --magritte-color-component-input-stroke-state-field-focused-v26-0-0:#7195AF;
68
- --magritte-color-component-input-icon-state-chevron-hovered-v26-0-0:#8293a2;
69
- --magritte-color-component-input-icon-state-chevron-disabled-v26-0-0:#96aabb;
67
+ --magritte-color-component-input-stroke-state-field-focused-v26-0-2:#7195AF;
68
+ --magritte-color-component-input-icon-state-chevron-hovered-v26-0-2:#8293a2;
69
+ --magritte-color-component-input-icon-state-chevron-disabled-v26-0-2:#96aabb;
70
70
  }
71
- .magritte-root___-zVdz_4-5-2{
71
+ .magritte-root___-zVdz_4-5-4{
72
72
  display:inline-flex;
73
73
  position:relative;
74
74
  width:100%;
@@ -77,146 +77,146 @@
77
77
  white-space:nowrap;
78
78
  appearance:none;
79
79
  overflow-y:auto;
80
- background-color:var(--magritte-color-component-input-background-field-v26-0-0);
81
- box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-field-v26-0-0);
80
+ background-color:var(--magritte-color-component-input-background-field-v26-0-2);
81
+ box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-field-v26-0-2);
82
82
  border-radius:12px;
83
- --magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-chevron-v26-0-0);
83
+ --magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-chevron-v26-0-2);
84
84
  --magritte-ui-scrollbar-border-radius:12px;
85
85
  }
86
86
  @media (min-width: 1020px){
87
- body.magritte-old-layout .magritte-root___-zVdz_4-5-2:not(.magritte-focused___0Uzyu_4-5-2):not(.magritte-invalid___tVzQV_4-5-2):not(.magritte-disabled___UeqcV_4-5-2):hover{
88
- background-color:var(--magritte-color-component-input-background-state-field-hovered-v26-0-0);
89
- box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-hovered-v26-0-0);
90
- --magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-state-chevron-hovered-v26-0-0);
87
+ body.magritte-old-layout .magritte-root___-zVdz_4-5-4:not(.magritte-focused___0Uzyu_4-5-4):not(.magritte-invalid___tVzQV_4-5-4):not(.magritte-disabled___UeqcV_4-5-4):hover{
88
+ background-color:var(--magritte-color-component-input-background-state-field-hovered-v26-0-2);
89
+ box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-hovered-v26-0-2);
90
+ --magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-state-chevron-hovered-v26-0-2);
91
91
  }
92
- body.magritte-old-layout .magritte-root___-zVdz_4-5-2:not(.magritte-focused___0Uzyu_4-5-2):not(.magritte-invalid___tVzQV_4-5-2):not(.magritte-disabled___UeqcV_4-5-2):hover .magritte-label___j7Trt_4-5-2{
93
- color:var(--magritte-color-component-input-text-state-placeholder-hovered-v26-0-0);
92
+ body.magritte-old-layout .magritte-root___-zVdz_4-5-4:not(.magritte-focused___0Uzyu_4-5-4):not(.magritte-invalid___tVzQV_4-5-4):not(.magritte-disabled___UeqcV_4-5-4):hover .magritte-label___j7Trt_4-5-4{
93
+ color:var(--magritte-color-component-input-text-state-placeholder-hovered-v26-0-2);
94
94
  }
95
- body.magritte-old-layout .magritte-root___-zVdz_4-5-2:not(.magritte-focused___0Uzyu_4-5-2):not(.magritte-invalid___tVzQV_4-5-2):not(.magritte-disabled___UeqcV_4-5-2):hover .magritte-field-input___04Cag_4-5-2{
96
- color:var(--magritte-color-component-input-text-state-content-hovered-v26-0-0);
95
+ body.magritte-old-layout .magritte-root___-zVdz_4-5-4:not(.magritte-focused___0Uzyu_4-5-4):not(.magritte-invalid___tVzQV_4-5-4):not(.magritte-disabled___UeqcV_4-5-4):hover .magritte-field-input___04Cag_4-5-4{
96
+ color:var(--magritte-color-component-input-text-state-content-hovered-v26-0-2);
97
97
  }
98
98
  }
99
99
  @media (min-width: 1024px){
100
- body:not(.magritte-old-layout) .magritte-root___-zVdz_4-5-2:not(.magritte-focused___0Uzyu_4-5-2):not(.magritte-invalid___tVzQV_4-5-2):not(.magritte-disabled___UeqcV_4-5-2):hover{
101
- background-color:var(--magritte-color-component-input-background-state-field-hovered-v26-0-0);
102
- box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-hovered-v26-0-0);
103
- --magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-state-chevron-hovered-v26-0-0);
100
+ body:not(.magritte-old-layout) .magritte-root___-zVdz_4-5-4:not(.magritte-focused___0Uzyu_4-5-4):not(.magritte-invalid___tVzQV_4-5-4):not(.magritte-disabled___UeqcV_4-5-4):hover{
101
+ background-color:var(--magritte-color-component-input-background-state-field-hovered-v26-0-2);
102
+ box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-hovered-v26-0-2);
103
+ --magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-state-chevron-hovered-v26-0-2);
104
104
  }
105
- body:not(.magritte-old-layout) .magritte-root___-zVdz_4-5-2:not(.magritte-focused___0Uzyu_4-5-2):not(.magritte-invalid___tVzQV_4-5-2):not(.magritte-disabled___UeqcV_4-5-2):hover .magritte-label___j7Trt_4-5-2{
106
- color:var(--magritte-color-component-input-text-state-placeholder-hovered-v26-0-0);
105
+ body:not(.magritte-old-layout) .magritte-root___-zVdz_4-5-4:not(.magritte-focused___0Uzyu_4-5-4):not(.magritte-invalid___tVzQV_4-5-4):not(.magritte-disabled___UeqcV_4-5-4):hover .magritte-label___j7Trt_4-5-4{
106
+ color:var(--magritte-color-component-input-text-state-placeholder-hovered-v26-0-2);
107
107
  }
108
- body:not(.magritte-old-layout) .magritte-root___-zVdz_4-5-2:not(.magritte-focused___0Uzyu_4-5-2):not(.magritte-invalid___tVzQV_4-5-2):not(.magritte-disabled___UeqcV_4-5-2):hover .magritte-field-input___04Cag_4-5-2{
109
- color:var(--magritte-color-component-input-text-state-content-hovered-v26-0-0);
108
+ body:not(.magritte-old-layout) .magritte-root___-zVdz_4-5-4:not(.magritte-focused___0Uzyu_4-5-4):not(.magritte-invalid___tVzQV_4-5-4):not(.magritte-disabled___UeqcV_4-5-4):hover .magritte-field-input___04Cag_4-5-4{
109
+ color:var(--magritte-color-component-input-text-state-content-hovered-v26-0-2);
110
110
  }
111
111
  }
112
- .magritte-root___-zVdz_4-5-2:not(.magritte-disabled___UeqcV_4-5-2){
112
+ .magritte-root___-zVdz_4-5-4:not(.magritte-disabled___UeqcV_4-5-4){
113
113
  cursor:text;
114
114
  }
115
- .magritte-root___-zVdz_4-5-2.magritte-focused___0Uzyu_4-5-2{
116
- background-color:var(--magritte-color-component-input-background-state-field-focused-v26-0-0);
117
- box-shadow:inset 0 0 0 2px var(--magritte-color-component-input-stroke-state-field-focused-v26-0-0);
118
- --magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-state-chevron-focused-v26-0-0);
115
+ .magritte-root___-zVdz_4-5-4.magritte-focused___0Uzyu_4-5-4{
116
+ background-color:var(--magritte-color-component-input-background-state-field-focused-v26-0-2);
117
+ box-shadow:inset 0 0 0 2px var(--magritte-color-component-input-stroke-state-field-focused-v26-0-2);
118
+ --magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-state-chevron-focused-v26-0-2);
119
119
  }
120
- .magritte-root___-zVdz_4-5-2.magritte-focused___0Uzyu_4-5-2 .magritte-label___j7Trt_4-5-2{
121
- color:var(--magritte-color-component-input-text-state-placeholder-focused-v26-0-0);
120
+ .magritte-root___-zVdz_4-5-4.magritte-focused___0Uzyu_4-5-4 .magritte-label___j7Trt_4-5-4{
121
+ color:var(--magritte-color-component-input-text-state-placeholder-focused-v26-0-2);
122
122
  }
123
- .magritte-root___-zVdz_4-5-2.magritte-focused___0Uzyu_4-5-2 .magritte-field-input___04Cag_4-5-2{
124
- color:var(--magritte-color-component-input-text-state-content-focused-v26-0-0);
123
+ .magritte-root___-zVdz_4-5-4.magritte-focused___0Uzyu_4-5-4 .magritte-field-input___04Cag_4-5-4{
124
+ color:var(--magritte-color-component-input-text-state-content-focused-v26-0-2);
125
125
  }
126
- .magritte-root___-zVdz_4-5-2.magritte-invalid___tVzQV_4-5-2{
127
- background-color:var(--magritte-color-component-input-background-state-field-invalid-v26-0-0);
128
- box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-invalid-v26-0-0);
129
- --magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-state-chevron-invalid-v26-0-0);
126
+ .magritte-root___-zVdz_4-5-4.magritte-invalid___tVzQV_4-5-4{
127
+ background-color:var(--magritte-color-component-input-background-state-field-invalid-v26-0-2);
128
+ box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-invalid-v26-0-2);
129
+ --magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-state-chevron-invalid-v26-0-2);
130
130
  }
131
- .magritte-root___-zVdz_4-5-2.magritte-invalid___tVzQV_4-5-2 .magritte-label___j7Trt_4-5-2{
132
- color:var(--magritte-color-component-input-text-state-placeholder-invalid-v26-0-0);
131
+ .magritte-root___-zVdz_4-5-4.magritte-invalid___tVzQV_4-5-4 .magritte-label___j7Trt_4-5-4{
132
+ color:var(--magritte-color-component-input-text-state-placeholder-invalid-v26-0-2);
133
133
  }
134
- .magritte-root___-zVdz_4-5-2.magritte-invalid___tVzQV_4-5-2 .magritte-field-input___04Cag_4-5-2{
135
- color:var(--magritte-color-component-input-text-state-content-invalid-v26-0-0);
134
+ .magritte-root___-zVdz_4-5-4.magritte-invalid___tVzQV_4-5-4 .magritte-field-input___04Cag_4-5-4{
135
+ color:var(--magritte-color-component-input-text-state-content-invalid-v26-0-2);
136
136
  }
137
- .magritte-root___-zVdz_4-5-2.magritte-disabled___UeqcV_4-5-2{
138
- background-color:var(--magritte-color-component-input-background-state-field-disabled-v26-0-0);
139
- box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-disabled-v26-0-0);
140
- --magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-state-chevron-disabled-v26-0-0);
141
- --magritte-ui-chip-text-color-override:var(--magritte-color-component-input-chips-text-state-neutral-disable-v26-0-0);
142
- --magritte-ui-chip-background-color-override:var(--magritte-color-component-input-chips-background-state-neutral-disable-v26-0-0);
137
+ .magritte-root___-zVdz_4-5-4.magritte-disabled___UeqcV_4-5-4{
138
+ background-color:var(--magritte-color-component-input-background-state-field-disabled-v26-0-2);
139
+ box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-disabled-v26-0-2);
140
+ --magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-state-chevron-disabled-v26-0-2);
141
+ --magritte-ui-chip-text-color-override:var(--magritte-color-component-input-chips-text-state-neutral-disable-v26-0-2);
142
+ --magritte-ui-chip-background-color-override:var(--magritte-color-component-input-chips-background-state-neutral-disable-v26-0-2);
143
143
  }
144
- .magritte-root___-zVdz_4-5-2.magritte-disabled___UeqcV_4-5-2 .magritte-label___j7Trt_4-5-2{
145
- color:var(--magritte-color-component-input-text-state-placeholder-disabled-v26-0-0);
144
+ .magritte-root___-zVdz_4-5-4.magritte-disabled___UeqcV_4-5-4 .magritte-label___j7Trt_4-5-4{
145
+ color:var(--magritte-color-component-input-text-state-placeholder-disabled-v26-0-2);
146
146
  }
147
- .magritte-root___-zVdz_4-5-2.magritte-disabled___UeqcV_4-5-2 .magritte-field-input___04Cag_4-5-2{
148
- color:var(--magritte-color-component-input-text-state-content-disabled-v26-0-0);
147
+ .magritte-root___-zVdz_4-5-4.magritte-disabled___UeqcV_4-5-4 .magritte-field-input___04Cag_4-5-4{
148
+ color:var(--magritte-color-component-input-text-state-content-disabled-v26-0-2);
149
149
  }
150
- .magritte-root___-zVdz_4-5-2.magritte-disabled___UeqcV_4-5-2 .magritte-scrollable-area___-xMF2_4-5-2{
150
+ .magritte-root___-zVdz_4-5-4.magritte-disabled___UeqcV_4-5-4 .magritte-scrollable-area___-xMF2_4-5-4{
151
151
  overflow:hidden;
152
152
  }
153
- .magritte-root___-zVdz_4-5-2.magritte-focus-visible___ifvAP_4-5-2{
154
- outline:var(--magritte-color-component-input-stroke-state-accent-focused-accessible-v26-0-0) solid 4px;
153
+ .magritte-root___-zVdz_4-5-4.magritte-focus-visible___ifvAP_4-5-4{
154
+ outline:var(--magritte-color-component-input-stroke-state-accent-focused-accessible-v26-0-2) solid 4px;
155
155
  }
156
- .magritte-root___-zVdz_4-5-2.magritte-focus-visible___ifvAP_4-5-2.magritte-invalid___tVzQV_4-5-2{
157
- outline-color:var(--magritte-color-component-input-stroke-state-negative-focused-accessible-v26-0-0);
156
+ .magritte-root___-zVdz_4-5-4.magritte-focus-visible___ifvAP_4-5-4.magritte-invalid___tVzQV_4-5-4{
157
+ outline-color:var(--magritte-color-component-input-stroke-state-negative-focused-accessible-v26-0-2);
158
158
  }
159
- .magritte-large___JIrIy_4-5-2{
159
+ .magritte-large___JIrIy_4-5-4{
160
160
  padding-left:12px;
161
161
  padding-top:12px;
162
162
  padding-bottom:12px;
163
163
  padding-right:2px;
164
164
  }
165
- .magritte-large___JIrIy_4-5-2 .magritte-field___rlEmn_4-5-2{
165
+ .magritte-large___JIrIy_4-5-4 .magritte-field___rlEmn_4-5-4{
166
166
  margin-left:4px;
167
167
  }
168
- .magritte-large___JIrIy_4-5-2 .magritte-icon___fDMiz_4-5-2{
168
+ .magritte-large___JIrIy_4-5-4 .magritte-icon___fDMiz_4-5-4{
169
169
  top:12px;
170
170
  right:16px;
171
171
  }
172
- .magritte-large___JIrIy_4-5-2 .magritte-scrollable-area-wrapper___hZNQd_4-5-2{
172
+ .magritte-large___JIrIy_4-5-4 .magritte-scrollable-area-wrapper___hZNQd_4-5-4{
173
173
  padding-right:10px;
174
174
  }
175
- .magritte-large___JIrIy_4-5-2 .magritte-scrollable-area-wrapper_with-icon___2VoX9_4-5-2{
175
+ .magritte-large___JIrIy_4-5-4 .magritte-scrollable-area-wrapper_with-icon___2VoX9_4-5-4{
176
176
  padding-right:calc(24px + 10px + 12px);
177
177
  }
178
- .magritte-medium___Xk-XB_4-5-2{
178
+ .magritte-medium___Xk-XB_4-5-4{
179
179
  padding-left:8px;
180
180
  padding-top:8px;
181
181
  padding-bottom:8px;
182
182
  padding-right:2px;
183
183
  }
184
- .magritte-medium___Xk-XB_4-5-2 .magritte-field___rlEmn_4-5-2{
184
+ .magritte-medium___Xk-XB_4-5-4 .magritte-field___rlEmn_4-5-4{
185
185
  margin-left:8px;
186
186
  }
187
- .magritte-medium___Xk-XB_4-5-2 .magritte-icon___fDMiz_4-5-2{
187
+ .magritte-medium___Xk-XB_4-5-4 .magritte-icon___fDMiz_4-5-4{
188
188
  top:8px;
189
189
  right:12px;
190
190
  }
191
- .magritte-medium___Xk-XB_4-5-2 .magritte-scrollable-area-wrapper___hZNQd_4-5-2{
191
+ .magritte-medium___Xk-XB_4-5-4 .magritte-scrollable-area-wrapper___hZNQd_4-5-4{
192
192
  padding-right:6px;
193
193
  }
194
- .magritte-medium___Xk-XB_4-5-2 .magritte-scrollable-area-wrapper_with-icon___2VoX9_4-5-2{
194
+ .magritte-medium___Xk-XB_4-5-4 .magritte-scrollable-area-wrapper_with-icon___2VoX9_4-5-4{
195
195
  padding-right:calc(24px + 6px + 12px);
196
196
  }
197
- .magritte-scrollable-area-wrapper___hZNQd_4-5-2{
197
+ .magritte-scrollable-area-wrapper___hZNQd_4-5-4{
198
198
  width:100%;
199
199
  position:relative;
200
200
  overflow:hidden;
201
201
  }
202
- .magritte-scrollable-area___-xMF2_4-5-2{
202
+ .magritte-scrollable-area___-xMF2_4-5-4{
203
203
  height:100%;
204
204
  display:flex;
205
205
  align-items:flex-start;
206
206
  overflow-y:auto;
207
207
  scrollbar-width:none;
208
208
  }
209
- .magritte-scrollable-area___-xMF2_4-5-2::-webkit-scrollbar{
209
+ .magritte-scrollable-area___-xMF2_4-5-4::-webkit-scrollbar{
210
210
  display:none;
211
211
  }
212
- .magritte-chips-and-input___qg-Ba_4-5-2{
212
+ .magritte-chips-and-input___qg-Ba_4-5-4{
213
213
  display:flex;
214
214
  gap:8px;
215
215
  flex-wrap:wrap;
216
216
  align-items:center;
217
217
  width:100%;
218
218
  }
219
- .magritte-field___rlEmn_4-5-2{
219
+ .magritte-field___rlEmn_4-5-4{
220
220
  display:flex;
221
221
  align-items:center;
222
222
  position:relative;
@@ -232,41 +232,41 @@
232
232
  text-transform:none;
233
233
  text-decoration:none;
234
234
  }
235
- .magritte-field-input___04Cag_4-5-2{
235
+ .magritte-field-input___04Cag_4-5-4{
236
236
  border:0;
237
237
  padding:0;
238
238
  background:none;
239
239
  outline:none;
240
240
  width:100%;
241
241
  z-index:1;
242
- color:var(--magritte-color-component-input-text-content-v26-0-0);
242
+ color:var(--magritte-color-component-input-text-content-v26-0-2);
243
243
  }
244
- .magritte-label-wrapper___De7Bm_4-5-2{
244
+ .magritte-label-wrapper___De7Bm_4-5-4{
245
245
  display:flex;
246
246
  align-items:center;
247
247
  position:absolute;
248
248
  height:100%;
249
249
  inset:0;
250
250
  }
251
- .magritte-label___j7Trt_4-5-2{
252
- color:var(--magritte-color-component-input-text-placeholder-v26-0-0);
251
+ .magritte-label___j7Trt_4-5-4{
252
+ color:var(--magritte-color-component-input-text-placeholder-v26-0-2);
253
253
  overflow:hidden;
254
254
  text-overflow:ellipsis;
255
255
  }
256
- .magritte-icon___fDMiz_4-5-2{
256
+ .magritte-icon___fDMiz_4-5-4{
257
257
  display:inline-flex;
258
258
  margin-left:auto;
259
259
  padding:4px 0;
260
260
  position:absolute;
261
261
  transition-property:transform;
262
- transition-duration:var(--magritte-semantic-animation-ease-in-out-100-duration-v26-0-0);
263
- transition-timing-function:var(--magritte-semantic-animation-ease-in-out-100-timing-function-v26-0-0);
262
+ transition-duration:var(--magritte-semantic-animation-ease-in-out-100-duration-v26-0-2);
263
+ transition-timing-function:var(--magritte-semantic-animation-ease-in-out-100-timing-function-v26-0-2);
264
264
  }
265
- .magritte-icon_expanded___RaOT-_4-5-2{
265
+ .magritte-icon_expanded___RaOT-_4-5-4{
266
266
  transform:rotate(-180deg);
267
- --magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-state-chevron-focused-v26-0-0);
267
+ --magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-state-chevron-focused-v26-0-2);
268
268
  }
269
- .magritte-custom-chip-wrapper___a9kJ6_4-5-2{
269
+ .magritte-custom-chip-wrapper___a9kJ6_4-5-4{
270
270
  display:inline-flex;
271
271
  min-width:0;
272
272
  }
package/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export * from '@hh.ru/magritte-ui-chips-trigger/ChipsTrigger';
2
- export * from '@hh.ru/magritte-ui-chips-trigger/UncontrolledChipsTrigger';
3
- export * from '@hh.ru/magritte-ui-chips-trigger/types';
1
+ export * from './ChipsTrigger';
2
+ export * from './UncontrolledChipsTrigger';
3
+ export * from './types';
package/index.mock.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import { ForwardRefExoticComponent } from 'react';
2
- export type * from '@hh.ru/magritte-ui-chips-trigger/types';
2
+ export type * from './types';
3
3
  export declare const ChipsTrigger: ForwardRefExoticComponent<Record<string, unknown>>;
4
4
  export declare const UncontrolledChipsTrigger: ForwardRefExoticComponent<Record<string, unknown>>;
package/index.mock.js CHANGED
@@ -1,12 +1,20 @@
1
1
  import './index.css';
2
2
  import { mockComponent } from '@hh.ru/magritte-ui-mock-component';
3
3
 
4
- const ChipsTrigger = mockComponent('ChipsTrigger', undefined, {
5
- withChildren: false,
6
- });
7
- const UncontrolledChipsTrigger = mockComponent('UncontrolledChipsTrigger', undefined, {
8
- withChildren: false,
9
- });
4
+ const ChipsTrigger = mockComponent(
5
+ "ChipsTrigger",
6
+ void 0,
7
+ {
8
+ withChildren: false
9
+ }
10
+ );
11
+ const UncontrolledChipsTrigger = mockComponent(
12
+ "UncontrolledChipsTrigger",
13
+ void 0,
14
+ {
15
+ withChildren: false
16
+ }
17
+ );
10
18
 
11
19
  export { ChipsTrigger, UncontrolledChipsTrigger };
12
20
  //# sourceMappingURL=index.mock.js.map
package/index.mock.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mock.js","sources":["src/index.mock.ts"],"sourcesContent":["import { ForwardRefExoticComponent } from 'react';\n\nimport { mockComponent } from '@hh.ru/magritte-ui-mock-component';\n\nexport type * from '@hh.ru/magritte-ui-chips-trigger/types';\n\nexport const ChipsTrigger: ForwardRefExoticComponent<Record<string, unknown>> = mockComponent(\n 'ChipsTrigger',\n undefined,\n {\n withChildren: false,\n }\n);\n\nexport const UncontrolledChipsTrigger: ForwardRefExoticComponent<Record<string, unknown>> = mockComponent(\n 'UncontrolledChipsTrigger',\n undefined,\n {\n withChildren: false,\n }\n);\n"],"names":[],"mappings":";;MAMa,YAAY,GAAuD,aAAa,CACzF,cAAc,EACd,SAAS,EACT;AACI,IAAA,YAAY,EAAE,KAAK;AACtB,CAAA,EACH;MAEW,wBAAwB,GAAuD,aAAa,CACrG,0BAA0B,EAC1B,SAAS,EACT;AACI,IAAA,YAAY,EAAE,KAAK;AACtB,CAAA;;;;"}
1
+ {"version":3,"file":"index.mock.js","sources":["src/index.mock.ts"],"sourcesContent":["import { ForwardRefExoticComponent } from 'react';\n\nimport { mockComponent } from '@hh.ru/magritte-ui-mock-component';\n\nexport type * from '@hh.ru/magritte-ui-chips-trigger/types';\n\nexport const ChipsTrigger: ForwardRefExoticComponent<Record<string, unknown>> = mockComponent(\n 'ChipsTrigger',\n undefined,\n {\n withChildren: false,\n }\n);\n\nexport const UncontrolledChipsTrigger: ForwardRefExoticComponent<Record<string, unknown>> = mockComponent(\n 'UncontrolledChipsTrigger',\n undefined,\n {\n withChildren: false,\n }\n);\n"],"names":[],"mappings":";;AAMO,MAAM,YAAmE,GAAA,aAAA;AAAA,EAC5E,cAAA;AAAA,EACA,KAAA,CAAA;AAAA,EACA;AAAA,IACI,YAAc,EAAA,KAAA;AAAA,GAClB;AACJ,EAAA;AAEO,MAAM,wBAA+E,GAAA,aAAA;AAAA,EACxF,0BAAA;AAAA,EACA,KAAA,CAAA;AAAA,EACA;AAAA,IACI,YAAc,EAAA,KAAA;AAAA,GAClB;AACJ;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hh.ru/magritte-ui-chips-trigger",
3
- "version": "4.5.2",
3
+ "version": "4.5.4",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "sideEffects": [
@@ -16,6 +16,7 @@
16
16
  "ts-config": "yarn root:ts-config $(pwd)",
17
17
  "ts-check": "yarn root:ts-check $(pwd)",
18
18
  "test": "yarn root:test $(pwd)",
19
+ "test:types": "yarn root:test:types $(pwd)",
19
20
  "watch": "yarn root:watch $(pwd)"
20
21
  },
21
22
  "peerDependencies": {
@@ -26,17 +27,17 @@
26
27
  "access": "public"
27
28
  },
28
29
  "dependencies": {
29
- "@hh.ru/magritte-common-keyboard": "4.3.6",
30
- "@hh.ru/magritte-common-use-multiple-refs": "1.1.12",
31
- "@hh.ru/magritte-common-use-translation": "3.6.1",
32
- "@hh.ru/magritte-design-tokens": "26.0.0",
33
- "@hh.ru/magritte-ui-breakpoint": "6.1.2",
34
- "@hh.ru/magritte-ui-chips": "7.0.46",
35
- "@hh.ru/magritte-ui-form-helper": "2.1.24",
36
- "@hh.ru/magritte-ui-icon": "15.1.4",
37
- "@hh.ru/magritte-ui-input": "9.4.51",
38
- "@hh.ru/magritte-ui-mock-component": "1.1.8",
39
- "@hh.ru/magritte-ui-scrollbar": "1.0.38"
30
+ "@hh.ru/magritte-common-keyboard": "4.3.7",
31
+ "@hh.ru/magritte-common-use-multiple-refs": "1.1.13",
32
+ "@hh.ru/magritte-common-use-translation": "3.6.2",
33
+ "@hh.ru/magritte-design-tokens": "26.0.2",
34
+ "@hh.ru/magritte-ui-breakpoint": "6.1.3",
35
+ "@hh.ru/magritte-ui-chips": "7.0.48",
36
+ "@hh.ru/magritte-ui-form-helper": "2.1.26",
37
+ "@hh.ru/magritte-ui-icon": "15.1.6",
38
+ "@hh.ru/magritte-ui-input": "9.4.53",
39
+ "@hh.ru/magritte-ui-mock-component": "1.1.9",
40
+ "@hh.ru/magritte-ui-scrollbar": "1.0.40"
40
41
  },
41
- "gitHead": "b0ff5da48fb29d516c8289082560ee1882d16986"
42
+ "gitHead": "33dbaa1dc9b9705e925ffc9f6fcc7a0dc153bd36"
42
43
  }