@hh.ru/magritte-ui-chips-input 1.2.2 → 2.0.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/ChipsInput.d.ts +7 -2
- package/ChipsInput.js +38 -114
- package/ChipsInput.js.map +1 -1
- package/index.d.ts +0 -1
- package/index.js +3 -8
- package/index.js.map +1 -1
- package/package.json +8 -11
- package/types.d.ts +12 -38
- package/types.js +0 -1
- package/UncontrolledChipsInput.d.ts +0 -2
- package/UncontrolledChipsInput.js +0 -27
- package/UncontrolledChipsInput.js.map +0 -1
- package/index.css +0 -207
package/ChipsInput.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ForwardedRef, ReactElement } from 'react';
|
|
2
2
|
import { ChipsInputProps } from '@hh.ru/magritte-ui-chips-input/types';
|
|
3
|
-
|
|
3
|
+
declare const ChipsInput: (<DataType>(props: ChipsInputProps<DataType> & {
|
|
4
|
+
ref?: ForwardedRef<HTMLInputElement>;
|
|
5
|
+
}) => ReactElement | null) & {
|
|
6
|
+
displayName: string;
|
|
7
|
+
};
|
|
8
|
+
export { ChipsInput };
|
package/ChipsInput.js
CHANGED
|
@@ -1,121 +1,45 @@
|
|
|
1
|
-
import '
|
|
2
|
-
import {
|
|
3
|
-
import { forwardRef, useState, useRef, useCallback, useEffect } from 'react';
|
|
4
|
-
import classnames from 'classnames';
|
|
5
|
-
import { keyboardMatch, keyboardKeys, findNextFocusableElement } from '@hh.ru/magritte-common-keyboard';
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef, useRef } from 'react';
|
|
6
3
|
import { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { useFocus } from '@hh.ru/magritte-ui-input/useFocus';
|
|
4
|
+
import { ChipsTrigger } from '@hh.ru/magritte-ui-chips-trigger';
|
|
5
|
+
import { Input } from '@hh.ru/magritte-ui-input';
|
|
6
|
+
import { Suggest } from '@hh.ru/magritte-ui-suggest';
|
|
11
7
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
if (
|
|
16
|
-
return
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
8
|
+
const ChipsInputComponent = ({ type, state, onChange: onChangeExternal, triggerProps, suggestProps }, ref) => {
|
|
9
|
+
const chipsTriggerRef = useRef(null);
|
|
10
|
+
const chipsTriggerRefCallback = useMultipleRefs(ref, chipsTriggerRef);
|
|
11
|
+
if (type === 'suggest') {
|
|
12
|
+
return (jsx(Suggest, { ...suggestProps, onChange: (value, isValueFromList) => {
|
|
13
|
+
if (!isValueFromList) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if (!state.chips.some((chip) => chip.value === value)) {
|
|
17
|
+
onChangeExternal({ value: '', chips: [...state.chips, { value }] });
|
|
18
|
+
}
|
|
19
|
+
}, onBottomSheetOpen: () => chipsTriggerRef.current?.blur(), input: {
|
|
20
|
+
component: Input,
|
|
21
|
+
props: {
|
|
22
|
+
value: state.value,
|
|
23
|
+
},
|
|
24
|
+
}, onSearchSubmit: (event) => {
|
|
25
|
+
if (!triggerProps.allowArbitraryValues) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const value = event.target.value;
|
|
29
|
+
if (value) {
|
|
30
|
+
onChangeExternal({ value: '', chips: [...state.chips, { value }] });
|
|
31
|
+
}
|
|
32
|
+
}, renderTrigger: ({ props }) => {
|
|
33
|
+
const { onChange, wrapperRef, onFocus, onKeyDown } = props;
|
|
34
|
+
return (jsx(ChipsTrigger, { ...triggerProps, state: state, ref: chipsTriggerRefCallback, wrapperRef: wrapperRef, onKeyDown: onKeyDown, onFocus: onFocus, onChange: (newState) => {
|
|
35
|
+
onChangeExternal(newState);
|
|
36
|
+
onChange?.(newState.value);
|
|
37
|
+
} }));
|
|
38
|
+
} }));
|
|
22
39
|
}
|
|
40
|
+
return jsx("div", { children: "select" });
|
|
23
41
|
};
|
|
24
|
-
const ChipsInput = forwardRef(
|
|
25
|
-
const [expanded, setExpanded] = useState(false);
|
|
26
|
-
const [isFocusVisible, setFocusVisible] = useState(false);
|
|
27
|
-
const chipsRootRef = useRef(null);
|
|
28
|
-
const chipsRootRefCallback = useMultipleRefs(wrapperRef, chipsRootRef);
|
|
29
|
-
const chipsContainerRef = useRef(null);
|
|
30
|
-
const inputRef = useRef(null);
|
|
31
|
-
const inputRefCallback = useMultipleRefs(ref, inputRef);
|
|
32
|
-
const onChangeInput = useCallback((value) => {
|
|
33
|
-
onChange({
|
|
34
|
-
value,
|
|
35
|
-
chips: state.chips,
|
|
36
|
-
eventType: 'changeInputValue',
|
|
37
|
-
});
|
|
38
|
-
onChangeInputExternal?.(value);
|
|
39
|
-
}, [state.chips, onChange, onChangeInputExternal]);
|
|
40
|
-
const { changeHandler, focusHandler, blurHandler, isFocused } = useFocus(onChangeInput, onFocus, onBlur);
|
|
41
|
-
useEffect(() => {
|
|
42
|
-
if (inputRef.current) {
|
|
43
|
-
setFocusVisible(isFocused && inputRef.current.classList.contains('focus-visible'));
|
|
44
|
-
}
|
|
45
|
-
}, [isFocused]);
|
|
46
|
-
const deleteHandler = useCallback((index) => {
|
|
47
|
-
state.chips.splice(index, 1);
|
|
48
|
-
onChange({
|
|
49
|
-
value: state.value,
|
|
50
|
-
chips: [...state.chips],
|
|
51
|
-
eventType: 'removeChipByCross',
|
|
52
|
-
});
|
|
53
|
-
// не теряем фокус с инпута
|
|
54
|
-
inputRef.current?.focus();
|
|
55
|
-
}, [onChange, state.chips, state.value]);
|
|
56
|
-
const keyDownHandler = useCallback((event) => {
|
|
57
|
-
// создаем новый чипс и затираем текстовый инпут
|
|
58
|
-
if (keyboardMatch(event.nativeEvent, keyboardKeys.Enter)) {
|
|
59
|
-
if (state.value.length === 0) {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
onChange({
|
|
63
|
-
value: '',
|
|
64
|
-
chips: [...state.chips, state.value],
|
|
65
|
-
eventType: 'addChipByEnter',
|
|
66
|
-
});
|
|
67
|
-
onChangeInputExternal?.('');
|
|
68
|
-
}
|
|
69
|
-
// удаляем последний созданный чипс
|
|
70
|
-
if (state.value === '' && keyboardMatch(event.nativeEvent, keyboardKeys.Backspace)) {
|
|
71
|
-
state.chips.pop();
|
|
72
|
-
onChange({
|
|
73
|
-
value: state.value,
|
|
74
|
-
chips: [...state.chips],
|
|
75
|
-
eventType: 'removeChipByBackspace',
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
// пытаемся найти ближайший чипс для фокуса
|
|
79
|
-
if (state.value === '' && keyboardMatch(event.nativeEvent, keyboardKeys.ArrowLeft)) {
|
|
80
|
-
focusOnLastChip(event, chipsContainerRef.current, inputRef.current);
|
|
81
|
-
}
|
|
82
|
-
}, [onChange, onChangeInputExternal, state]);
|
|
83
|
-
// при выставлении высоты учитваем падинги
|
|
84
|
-
// иначе высота будет больше значения свойства
|
|
85
|
-
const scrollableAreaStyle = maxHeight
|
|
86
|
-
? {
|
|
87
|
-
maxHeight: `${maxHeight - (size === 'medium' ? 16 : 24)}px`,
|
|
88
|
-
}
|
|
89
|
-
: undefined;
|
|
90
|
-
return (jsxs(Fragment, { children: [jsxs("div", { ref: chipsRootRefCallback, className: classnames(styles.root, styles[size], {
|
|
91
|
-
[styles.focused]: isFocused,
|
|
92
|
-
[styles.focusVisible]: isFocusVisible,
|
|
93
|
-
[styles.disabled]: !!disabled,
|
|
94
|
-
[styles.invalid]: !!invalid,
|
|
95
|
-
}), onFocus: () => {
|
|
96
|
-
if (disabled) {
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
if (!inputRef.current) {
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
setExpanded(true);
|
|
103
|
-
// добавляем .focus() еще и тут
|
|
104
|
-
// чтобы не сбрасывать фокус во время клика по chip
|
|
105
|
-
// или по клику на враппер
|
|
106
|
-
if (document.activeElement === chipsRootRef.current) {
|
|
107
|
-
inputRef.current.focus();
|
|
108
|
-
}
|
|
109
|
-
}, onBlur: () => {
|
|
110
|
-
setExpanded(false);
|
|
111
|
-
}, onKeyDown: onKeyDown, tabIndex: disabled ? -1 : 0, children: [jsx("div", { style: scrollableAreaStyle, className: styles.scrollableArea, children: jsxs("div", { ref: chipsContainerRef, className: styles.chipsAndInput, children: [state.chips.map((chip, index) => {
|
|
112
|
-
return (jsx(CustomChip, { Element: "button", size: "small", disabled: disabled, onDelete: () => {
|
|
113
|
-
deleteHandler(index);
|
|
114
|
-
}, children: chip }, `${chip}-${index}`));
|
|
115
|
-
}), jsx("input", { ref: inputRefCallback, className: styles.field, type: "text", disabled: disabled, value: state.value, placeholder: state.chips.length === 0 ? placeholder : '', onKeyDown: keyDownHandler, onFocus: focusHandler, onBlur: blurHandler, onChange: changeHandler })] }) }), jsx("div", { className: classnames(styles.icon, {
|
|
116
|
-
[styles.iconExpanded]: expanded,
|
|
117
|
-
}), children: jsx(ChevronDownOutlinedSize24, {}) })] }), jsx(FormHelper, { description: description, errorMessage: errorMessage, disabled: disabled, invalid: invalid })] }));
|
|
118
|
-
});
|
|
42
|
+
const ChipsInput = forwardRef(ChipsInputComponent);
|
|
119
43
|
ChipsInput.displayName = 'ChipsInput';
|
|
120
44
|
|
|
121
45
|
export { ChipsInput };
|
package/ChipsInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipsInput.js","sources":["../src/ChipsInput.tsx"],"sourcesContent":["import {\n forwardRef,\n InputHTMLAttributes,\n useState,\n useCallback,\n KeyboardEventHandler,\n useRef,\n SyntheticEvent,\n useEffect,\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 { CustomChip } from '@hh.ru/magritte-ui-chips';\nimport { ChipsInputProps } from '@hh.ru/magritte-ui-chips-input/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';\n\nimport styles from './chips-input.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\nexport const ChipsInput = forwardRef<\n HTMLInputElement,\n ChipsInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, keyof ChipsInputProps>\n>(\n (\n {\n size = 'large',\n placeholder,\n disabled,\n state,\n invalid,\n maxHeight,\n description,\n errorMessage,\n wrapperRef,\n onChange,\n onFocus,\n onBlur,\n onKeyDown,\n onChangeInput: onChangeInputExternal,\n },\n ref\n ) => {\n const [expanded, setExpanded] = useState(false);\n const [isFocusVisible, setFocusVisible] = useState(false);\n\n const chipsRootRef = useRef<HTMLDivElement>(null);\n const chipsRootRefCallback = useMultipleRefs(wrapperRef, chipsRootRef);\n const chipsContainerRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const inputRefCallback = useMultipleRefs(ref, inputRef);\n\n const onChangeInput = useCallback(\n (value: string) => {\n onChange({\n value,\n chips: state.chips,\n eventType: 'changeInputValue',\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 state.chips.splice(index, 1);\n onChange({\n value: state.value,\n chips: [...state.chips],\n eventType: 'removeChipByCross',\n });\n // не теряем фокус с инпута\n inputRef.current?.focus();\n },\n [onChange, state.chips, state.value]\n );\n\n const keyDownHandler = useCallback<KeyboardEventHandler>(\n (event) => {\n // создаем новый чипс и затираем текстовый инпут\n if (keyboardMatch(event.nativeEvent, keyboardKeys.Enter)) {\n if (state.value.length === 0) {\n return;\n }\n onChange({\n value: '',\n chips: [...state.chips, state.value],\n eventType: 'addChipByEnter',\n });\n onChangeInputExternal?.('');\n }\n // удаляем последний созданный чипс\n if (state.value === '' && keyboardMatch(event.nativeEvent, keyboardKeys.Backspace)) {\n state.chips.pop();\n onChange({\n value: state.value,\n chips: [...state.chips],\n eventType: 'removeChipByBackspace',\n });\n }\n // пытаемся найти ближайший чипс для фокуса\n if (state.value === '' && keyboardMatch(event.nativeEvent, keyboardKeys.ArrowLeft)) {\n focusOnLastChip(event, chipsContainerRef.current, inputRef.current);\n }\n },\n [onChange, onChangeInputExternal, state]\n );\n\n // при выставлении высоты учитваем падинги\n // иначе высота будет больше значения свойства\n const scrollableAreaStyle = maxHeight\n ? {\n maxHeight: `${maxHeight - (size === 'medium' ? 16 : 24)}px`,\n }\n : undefined;\n\n return (\n <>\n <div\n ref={chipsRootRefCallback}\n className={classnames(styles.root, styles[size], {\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={() => {\n setExpanded(false);\n }}\n onKeyDown={onKeyDown}\n tabIndex={disabled ? -1 : 0}\n >\n <div style={scrollableAreaStyle} className={styles.scrollableArea}>\n <div ref={chipsContainerRef} className={styles.chipsAndInput}>\n {state.chips.map((chip, index) => {\n return (\n <CustomChip\n Element=\"button\"\n key={`${chip}-${index}`}\n size=\"small\"\n disabled={disabled}\n onDelete={() => {\n deleteHandler(index);\n }}\n >\n {chip}\n </CustomChip>\n );\n })}\n <input\n ref={inputRefCallback}\n className={styles.field}\n type=\"text\"\n disabled={disabled}\n value={state.value}\n placeholder={state.chips.length === 0 ? placeholder : ''}\n onKeyDown={keyDownHandler}\n onFocus={focusHandler}\n onBlur={blurHandler}\n onChange={changeHandler}\n />\n </div>\n </div>\n <div\n className={classnames(styles.icon, {\n [styles.iconExpanded]: expanded,\n })}\n >\n <ChevronDownOutlinedSize24 />\n </div>\n </div>\n <FormHelper\n description={description}\n errorMessage={errorMessage}\n disabled={disabled}\n invalid={invalid}\n />\n </>\n );\n }\n);\n\nChipsInput.displayName = 'ChipsInput';\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChipsInput.js","sources":["../src/ChipsInput.tsx"],"sourcesContent":["import { forwardRef, useRef, ForwardedRef, ReactElement } from 'react';\n\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport { ChipsInputProps } from '@hh.ru/magritte-ui-chips-input/types';\nimport { ChipsTrigger } from '@hh.ru/magritte-ui-chips-trigger';\nimport { Input } from '@hh.ru/magritte-ui-input';\nimport { Suggest } from '@hh.ru/magritte-ui-suggest';\n\nconst ChipsInputComponent = <DataType,>(\n { type, state, onChange: onChangeExternal, triggerProps, suggestProps }: ChipsInputProps<DataType>,\n ref: ForwardedRef<HTMLInputElement>\n) => {\n const chipsTriggerRef = useRef<HTMLInputElement>(null);\n const chipsTriggerRefCallback = useMultipleRefs(ref, chipsTriggerRef);\n\n if (type === 'suggest') {\n return (\n <Suggest\n {...suggestProps}\n onChange={(value, isValueFromList) => {\n if (!isValueFromList) {\n return;\n }\n if (!state.chips.some((chip) => chip.value === value)) {\n onChangeExternal({ value: '', chips: [...state.chips, { value }] });\n }\n }}\n onBottomSheetOpen={() => chipsTriggerRef.current?.blur()}\n input={{\n component: Input,\n props: {\n value: state.value,\n },\n }}\n onSearchSubmit={(event) => {\n if (!triggerProps.allowArbitraryValues) {\n return;\n }\n const value = (event.target as HTMLInputElement).value;\n if (value) {\n onChangeExternal({ value: '', chips: [...state.chips, { value }] });\n }\n }}\n renderTrigger={({ props }) => {\n const { onChange, wrapperRef, onFocus, onKeyDown } = props;\n return (\n <ChipsTrigger\n {...triggerProps}\n state={state}\n ref={chipsTriggerRefCallback}\n wrapperRef={wrapperRef}\n onKeyDown={onKeyDown}\n onFocus={onFocus}\n onChange={(newState) => {\n onChangeExternal(newState);\n onChange?.(newState.value);\n }}\n />\n );\n }}\n />\n );\n }\n\n return <div>select</div>;\n};\n\nconst ChipsInput = forwardRef(ChipsInputComponent) as (<DataType>(\n props: ChipsInputProps<DataType> & { ref?: ForwardedRef<HTMLInputElement> }\n) => ReactElement | null) & { displayName: string };\n\nChipsInput.displayName = 'ChipsInput';\n\nexport { ChipsInput };\n"],"names":["_jsx"],"mappings":";;;;;;;AAQA,MAAM,mBAAmB,GAAG,CACxB,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAA6B,EAClG,GAAmC,KACnC;AACA,IAAA,MAAM,eAAe,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IACvD,MAAM,uBAAuB,GAAG,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;AAEtE,IAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AACpB,QAAA,QACIA,GAAA,CAAC,OAAO,EAAA,EAAA,GACA,YAAY,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAI;gBACjC,IAAI,CAAC,eAAe,EAAE;oBAClB,OAAO;iBACV;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE;oBACnD,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;iBACvE;AACL,aAAC,EACD,iBAAiB,EAAE,MAAM,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,EACxD,KAAK,EAAE;AACH,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,KAAK,EAAE;oBACH,KAAK,EAAE,KAAK,CAAC,KAAK;AACrB,iBAAA;AACJ,aAAA,EACD,cAAc,EAAE,CAAC,KAAK,KAAI;AACtB,gBAAA,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE;oBACpC,OAAO;iBACV;AACD,gBAAA,MAAM,KAAK,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;gBACvD,IAAI,KAAK,EAAE;oBACP,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;iBACvE;aACJ,EACD,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAI;gBACzB,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;AAC3D,gBAAA,QACIA,GAAA,CAAC,YAAY,EAAA,EAAA,GACL,YAAY,EAChB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,uBAAuB,EAC5B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,QAAQ,KAAI;wBACnB,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAC3B,wBAAA,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;qBAC9B,EAAA,CACH,EACJ;aACL,EAAA,CACH,EACJ;KACL;AAED,IAAA,OAAOA,kCAAiB,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,UAAU,CAAC,mBAAmB,EAEG;AAEpD,UAAU,CAAC,WAAW,GAAG,YAAY;;;;"}
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
import './index.css';
|
|
2
1
|
export { ChipsInput } from './ChipsInput.js';
|
|
3
|
-
export { UncontrolledChipsInput } from './UncontrolledChipsInput.js';
|
|
4
2
|
import 'react/jsx-runtime';
|
|
5
3
|
import 'react';
|
|
6
|
-
import 'classnames';
|
|
7
|
-
import '@hh.ru/magritte-common-keyboard';
|
|
8
4
|
import '@hh.ru/magritte-common-use-multiple-refs';
|
|
9
|
-
import '@hh.ru/magritte-ui-chips';
|
|
10
|
-
import '@hh.ru/magritte-ui-
|
|
11
|
-
import '@hh.ru/magritte-ui-
|
|
12
|
-
import '@hh.ru/magritte-ui-input/useFocus';
|
|
5
|
+
import '@hh.ru/magritte-ui-chips-trigger';
|
|
6
|
+
import '@hh.ru/magritte-ui-input';
|
|
7
|
+
import '@hh.ru/magritte-ui-suggest';
|
|
13
8
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hh.ru/magritte-ui-chips-input",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"types": "index.d.ts",
|
|
6
6
|
"sideEffects": [
|
|
@@ -19,20 +19,17 @@
|
|
|
19
19
|
"test": "yarn root:test $(pwd)",
|
|
20
20
|
"watch": "yarn root:watch $(pwd)"
|
|
21
21
|
},
|
|
22
|
-
"peerDependencies": {
|
|
23
|
-
"classnames": ">=2.3.2",
|
|
24
|
-
"react": ">=18.2.0"
|
|
25
|
-
},
|
|
26
22
|
"publishConfig": {
|
|
27
23
|
"access": "public"
|
|
28
24
|
},
|
|
25
|
+
"peerDependencies": {
|
|
26
|
+
"react": ">=18.2.0"
|
|
27
|
+
},
|
|
29
28
|
"dependencies": {
|
|
30
|
-
"@hh.ru/magritte-common-keyboard": "4.0.2",
|
|
31
29
|
"@hh.ru/magritte-common-use-multiple-refs": "1.1.4",
|
|
32
|
-
"@hh.ru/magritte-ui-chips": "
|
|
33
|
-
"@hh.ru/magritte-ui-
|
|
34
|
-
"@hh.ru/magritte-ui-
|
|
35
|
-
"@hh.ru/magritte-ui-input": "6.0.15"
|
|
30
|
+
"@hh.ru/magritte-ui-chips-trigger": "2.0.6",
|
|
31
|
+
"@hh.ru/magritte-ui-input": "7.0.2",
|
|
32
|
+
"@hh.ru/magritte-ui-suggest": "6.2.3"
|
|
36
33
|
},
|
|
37
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "1ac30fb3b6ed8df5e0683e4551925b6ab8bf08d9"
|
|
38
35
|
}
|
package/types.d.ts
CHANGED
|
@@ -1,39 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { ChipsTriggerProps } from '@hh.ru/magritte-ui-chips-trigger';
|
|
2
|
+
import { SuggestProps } from '@hh.ru/magritte-ui-suggest';
|
|
3
|
+
type ChipsInputType = 'select' | 'suggest';
|
|
4
|
+
type TriggerPropsHelper = Omit<ChipsTriggerProps, 'expanded' | 'toggleExpanded' | 'wrapperRef' | 'ref' | 'state' | 'onChange' | 'onKeyDown' | 'onFocus'>;
|
|
5
|
+
type SuggestPropsHelper<DataType> = Omit<SuggestProps<DataType>, 'inputValue' | 'onChange' | 'renderTrigger' | 'onSearchSubmit' | 'onBottomSheetOpen' | 'input'>;
|
|
6
|
+
export interface ChipsInputProps<DataType> {
|
|
7
|
+
type: ChipsInputType;
|
|
8
|
+
state: ChipsTriggerProps['state'];
|
|
9
|
+
onChange: ChipsTriggerProps['onChange'];
|
|
10
|
+
triggerProps: TriggerPropsHelper;
|
|
11
|
+
suggestProps: SuggestPropsHelper<DataType>;
|
|
8
12
|
}
|
|
9
|
-
export
|
|
10
|
-
/** Размер для chips-input */
|
|
11
|
-
size?: ChipsInputSize;
|
|
12
|
-
/** Текст плейсхолдера */
|
|
13
|
-
placeholder?: string;
|
|
14
|
-
/** Флаг отключения инпута */
|
|
15
|
-
disabled?: boolean;
|
|
16
|
-
/** Признак невалидности */
|
|
17
|
-
invalid?: boolean;
|
|
18
|
-
/** Обработчик события изменения состояния компонента (chip+input) */
|
|
19
|
-
onChange: (state: ChipsInputState) => void;
|
|
20
|
-
/** Обработчик события изменения состояния input */
|
|
21
|
-
onChangeInput?: (value: string) => void;
|
|
22
|
-
/** Значение инпута */
|
|
23
|
-
state: ChipsInputState;
|
|
24
|
-
/** Обработчик события получения фокуса */
|
|
25
|
-
onFocus?: FocusEventHandler<HTMLInputElement>;
|
|
26
|
-
/** Обработчик события потери фокуса */
|
|
27
|
-
onBlur?: FocusEventHandler<HTMLInputElement>;
|
|
28
|
-
/** Обработчик события keydown */
|
|
29
|
-
onKeyDown?: KeyboardEventHandler<HTMLElement>;
|
|
30
|
-
/** Максимальная высота chips-input */
|
|
31
|
-
maxHeight?: number;
|
|
32
|
-
/** Текст подсказки под инпутом */
|
|
33
|
-
description?: ReactNode;
|
|
34
|
-
/** Текст сообщения об ошибке */
|
|
35
|
-
errorMessage?: ReactNode;
|
|
36
|
-
/** ref root контейнера */
|
|
37
|
-
wrapperRef?: ForwardedRef<HTMLElement>;
|
|
38
|
-
}
|
|
39
|
-
export type UncontrolledChipsInputProps = Partial<ChipsInputProps>;
|
|
13
|
+
export {};
|
package/types.js
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { InputHTMLAttributes } from 'react';
|
|
2
|
-
export declare const UncontrolledChipsInput: import("react").ForwardRefExoticComponent<Partial<import("@hh.ru/magritte-ui-chips-input/types").ChipsInputProps> & Omit<InputHTMLAttributes<HTMLInputElement>, keyof import("@hh.ru/magritte-ui-chips-input/types").ChipsInputProps> & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import './index.css';
|
|
2
|
-
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { forwardRef, useState } from 'react';
|
|
4
|
-
import { ChipsInput } from './ChipsInput.js';
|
|
5
|
-
import 'classnames';
|
|
6
|
-
import '@hh.ru/magritte-common-keyboard';
|
|
7
|
-
import '@hh.ru/magritte-common-use-multiple-refs';
|
|
8
|
-
import '@hh.ru/magritte-ui-chips';
|
|
9
|
-
import '@hh.ru/magritte-ui-form-helper';
|
|
10
|
-
import '@hh.ru/magritte-ui-icon/icon';
|
|
11
|
-
import '@hh.ru/magritte-ui-input/useFocus';
|
|
12
|
-
|
|
13
|
-
const DEFAULT_STATE = {
|
|
14
|
-
value: '',
|
|
15
|
-
chips: [],
|
|
16
|
-
};
|
|
17
|
-
const UncontrolledChipsInput = forwardRef(({ state: defaultState = DEFAULT_STATE, onChange, name, ...restProps }, ref) => {
|
|
18
|
-
const [state, setState] = useState({ ...defaultState });
|
|
19
|
-
return (jsxs(Fragment, { children: [jsx(ChipsInput, { ...restProps, state: state, onChange: (newState) => {
|
|
20
|
-
setState(newState);
|
|
21
|
-
onChange?.(newState);
|
|
22
|
-
}, ref: ref }), state.chips.map((value) => (jsx("input", { type: "hidden", name: name, value: value }, value)))] }));
|
|
23
|
-
});
|
|
24
|
-
UncontrolledChipsInput.displayName = 'UncontrolledChipsInput';
|
|
25
|
-
|
|
26
|
-
export { UncontrolledChipsInput };
|
|
27
|
-
//# sourceMappingURL=UncontrolledChipsInput.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UncontrolledChipsInput.js","sources":["../src/UncontrolledChipsInput.tsx"],"sourcesContent":["import { forwardRef, InputHTMLAttributes, useState } from 'react';\n\nimport { ChipsInput } from '@hh.ru/magritte-ui-chips-input/ChipsInput';\nimport { UncontrolledChipsInputProps, ChipsInputState } from '@hh.ru/magritte-ui-chips-input/types';\n\nconst DEFAULT_STATE = {\n value: '',\n chips: [],\n};\n\nexport const UncontrolledChipsInput = forwardRef<\n HTMLInputElement,\n UncontrolledChipsInputProps & Omit<InputHTMLAttributes<HTMLInputElement>, keyof UncontrolledChipsInputProps>\n>(({ state: defaultState = DEFAULT_STATE, onChange, name, ...restProps }, ref) => {\n const [state, setState] = useState<ChipsInputState>({ ...defaultState });\n return (\n <>\n <ChipsInput\n {...restProps}\n state={state}\n onChange={(newState) => {\n setState(newState);\n onChange?.(newState);\n }}\n ref={ref}\n />\n {state.chips.map((value) => (\n <input type=\"hidden\" name={name} value={value} key={value} />\n ))}\n </>\n );\n});\n\nUncontrolledChipsInput.displayName = 'UncontrolledChipsInput';\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":";;;;;;;;;;;AAKA,MAAM,aAAa,GAAG;AAClB,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,KAAK,EAAE,EAAE;CACZ,CAAC;AAEW,MAAA,sBAAsB,GAAG,UAAU,CAG9C,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,KAAI;AAC7E,IAAA,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAkB,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;AACzE,IAAA,QACIA,IACI,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CAAAC,GAAA,CAAC,UAAU,EAAA,EAAA,GACH,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,EAAA,CACV,EACD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,MACnBA,GAAO,CAAA,OAAA,EAAA,EAAA,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IAAO,KAAK,CAAI,CAChE,CAAC,CAAA,EAAA,CACH,EACL;AACN,CAAC,EAAE;AAEH,sBAAsB,CAAC,WAAW,GAAG,wBAAwB;;;;"}
|
package/index.css
DELETED
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
:root{
|
|
2
|
-
--magritte-color-component-input-stroke-state-field-hovered-v19-1-0:#CCD5DF;
|
|
3
|
-
--magritte-color-component-input-stroke-state-field-focused-v19-1-0:#0070ff;
|
|
4
|
-
--magritte-color-component-input-stroke-state-accent-focused-accessible-v19-1-0:#0070ff7a;
|
|
5
|
-
--magritte-color-component-input-stroke-state-field-invalid-v19-1-0:#ff4d3a;
|
|
6
|
-
--magritte-color-component-input-stroke-state-negative-focused-accessible-v19-1-0:#ff4d3a7a;
|
|
7
|
-
--magritte-color-component-input-stroke-state-field-disabled-v19-1-0:#EEF1F7;
|
|
8
|
-
--magritte-color-component-input-background-field-v19-1-0:#ffffff;
|
|
9
|
-
--magritte-color-component-input-background-state-field-hovered-v19-1-0:#ffffff;
|
|
10
|
-
--magritte-color-component-input-background-state-field-focused-v19-1-0:#ffffff;
|
|
11
|
-
--magritte-color-component-input-background-state-field-invalid-v19-1-0:#ffffff;
|
|
12
|
-
--magritte-color-component-input-background-state-field-disabled-v19-1-0:#F4F6FB;
|
|
13
|
-
--magritte-color-component-input-stroke-field-v19-1-0:#DCE3EB;
|
|
14
|
-
--magritte-color-component-input-text-state-placeholder-disabled-v19-1-0:#AABBCA;
|
|
15
|
-
--magritte-color-component-input-text-state-placeholder-hovered-v19-1-0:#768694;
|
|
16
|
-
--magritte-color-component-input-text-state-placeholder-focused-v19-1-0:#AABBCA;
|
|
17
|
-
--magritte-color-component-input-text-state-placeholder-invalid-v19-1-0:#AABBCA;
|
|
18
|
-
--magritte-color-component-input-icon-content-v19-1-0:#6a7885;
|
|
19
|
-
--magritte-color-component-input-icon-state-content-hovered-v19-1-0:#6a7885;
|
|
20
|
-
--magritte-color-component-input-icon-state-content-focused-v19-1-0:#000000;
|
|
21
|
-
--magritte-color-component-input-icon-state-content-invalid-v19-1-0:#6a7885;
|
|
22
|
-
--magritte-color-component-input-icon-state-content-disabled-v19-1-0:#AABBCA;
|
|
23
|
-
--magritte-color-component-input-icon-state-chevron-focused-v19-1-0:#000000;
|
|
24
|
-
--magritte-color-component-input-text-placeholder-v19-1-0:#AABBCA;
|
|
25
|
-
--magritte-color-component-input-chips-background-state-neutral-disable-v19-1-0:#DCE3EB;
|
|
26
|
-
--magritte-color-component-input-chips-text-state-neutral-disable-v19-1-0:#96aabb;
|
|
27
|
-
}
|
|
28
|
-
:root{
|
|
29
|
-
--magritte-typography-label-2-regular-font-family-v19-1-0:"Inter";
|
|
30
|
-
--magritte-typography-label-2-regular-font-weight-v19-1-0:400;
|
|
31
|
-
--magritte-typography-label-2-regular-line-height-v19-1-0:22px;
|
|
32
|
-
--magritte-typography-label-2-regular-font-size-v19-1-0:16px;
|
|
33
|
-
--magritte-typography-label-2-regular-letter-spacing-v19-1-0:0em;
|
|
34
|
-
--magritte-typography-label-2-regular-text-indent-v19-1-0:0px;
|
|
35
|
-
--magritte-typography-label-2-regular-text-transform-v19-1-0:none;
|
|
36
|
-
--magritte-typography-label-2-regular-text-decoration-v19-1-0:none;
|
|
37
|
-
--magritte-semantic-animation-ease-in-out-100-timing-function-v19-1-0:cubic-bezier(0.25, 0.1, 0.25, 1);
|
|
38
|
-
--magritte-semantic-animation-ease-in-out-100-duration-v19-1-0:100ms;
|
|
39
|
-
--magritte-static-space-100-v19-1-0:4px;
|
|
40
|
-
--magritte-static-space-200-v19-1-0:8px;
|
|
41
|
-
--magritte-static-space-300-v19-1-0:12px;
|
|
42
|
-
--magritte-static-space-400-v19-1-0:16px;
|
|
43
|
-
--magritte-core-border-radius-3-x-v19-1-0:12px;
|
|
44
|
-
}
|
|
45
|
-
.magritte-night-theme{
|
|
46
|
-
--magritte-color-component-input-stroke-state-field-hovered-v19-1-0:#3B3B3B;
|
|
47
|
-
--magritte-color-component-input-stroke-state-field-focused-v19-1-0:#0070ff;
|
|
48
|
-
--magritte-color-component-input-stroke-state-accent-focused-accessible-v19-1-0:#0070ff7a;
|
|
49
|
-
--magritte-color-component-input-stroke-state-field-invalid-v19-1-0:#ff4d3a;
|
|
50
|
-
--magritte-color-component-input-stroke-state-negative-focused-accessible-v19-1-0:#ff4d3a7a;
|
|
51
|
-
--magritte-color-component-input-stroke-state-field-disabled-v19-1-0:#111;
|
|
52
|
-
--magritte-color-component-input-background-field-v19-1-0:#1B1B1B;
|
|
53
|
-
--magritte-color-component-input-background-state-field-hovered-v19-1-0:#1B1B1B;
|
|
54
|
-
--magritte-color-component-input-background-state-field-focused-v19-1-0:#1B1B1B;
|
|
55
|
-
--magritte-color-component-input-background-state-field-invalid-v19-1-0:#1B1B1B;
|
|
56
|
-
--magritte-color-component-input-background-state-field-disabled-v19-1-0:#111;
|
|
57
|
-
--magritte-color-component-input-stroke-field-v19-1-0:#303030;
|
|
58
|
-
--magritte-color-component-input-text-placeholder-v19-1-0:#535353;
|
|
59
|
-
--magritte-color-component-input-text-state-placeholder-disabled-v19-1-0:#474747;
|
|
60
|
-
--magritte-color-component-input-text-state-placeholder-hovered-v19-1-0:#5E5E5E;
|
|
61
|
-
--magritte-color-component-input-text-state-placeholder-focused-v19-1-0:#535353;
|
|
62
|
-
--magritte-color-component-input-text-state-placeholder-invalid-v19-1-0:#535353;
|
|
63
|
-
--magritte-color-component-input-icon-state-content-hovered-v19-1-0:#5E5E5E;
|
|
64
|
-
--magritte-color-component-input-icon-state-content-focused-v19-1-0:#ffffff;
|
|
65
|
-
--magritte-color-component-input-icon-state-content-invalid-v19-1-0:#767676;
|
|
66
|
-
--magritte-color-component-input-icon-state-content-disabled-v19-1-0:#474747;
|
|
67
|
-
--magritte-color-component-input-icon-state-chevron-focused-v19-1-0:#ffffff;
|
|
68
|
-
--magritte-color-component-input-icon-content-v19-1-0:#ABABAB;
|
|
69
|
-
--magritte-color-component-input-chips-background-state-neutral-disable-v19-1-0:#1B1B1B;
|
|
70
|
-
--magritte-color-component-input-chips-text-state-neutral-disable-v19-1-0:#474747;
|
|
71
|
-
}
|
|
72
|
-
.magritte-root___1YkGM_1-2-2{
|
|
73
|
-
display:inline-flex;
|
|
74
|
-
position:relative;
|
|
75
|
-
width:100%;
|
|
76
|
-
box-sizing:border-box;
|
|
77
|
-
user-select:none;
|
|
78
|
-
white-space:nowrap;
|
|
79
|
-
appearance:none;
|
|
80
|
-
overflow-y:auto;
|
|
81
|
-
background-color:var(--magritte-color-component-input-background-field-v19-1-0);
|
|
82
|
-
box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-field-v19-1-0);
|
|
83
|
-
border-radius:var(--magritte-core-border-radius-3-x-v19-1-0);
|
|
84
|
-
--magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-content-v19-1-0);
|
|
85
|
-
}
|
|
86
|
-
@media (min-width: 1020px){
|
|
87
|
-
body.magritte-old-layout .magritte-root___1YkGM_1-2-2:not(.magritte-focused___dy9eY_1-2-2):not(.magritte-invalid___RJHLG_1-2-2):not(.magritte-disabled___hD00s_1-2-2):hover{
|
|
88
|
-
background-color:var(--magritte-color-component-input-background-state-field-hovered-v19-1-0);
|
|
89
|
-
box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-hovered-v19-1-0);
|
|
90
|
-
--magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-state-content-hovered-v19-1-0);
|
|
91
|
-
}
|
|
92
|
-
body.magritte-old-layout .magritte-root___1YkGM_1-2-2:not(.magritte-focused___dy9eY_1-2-2):not(.magritte-invalid___RJHLG_1-2-2):not(.magritte-disabled___hD00s_1-2-2):hover .magritte-field___IMwTW_1-2-2::placeholder{
|
|
93
|
-
color:var(--magritte-color-component-input-text-state-placeholder-hovered-v19-1-0);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
@media (min-width: 1024px){
|
|
97
|
-
body:not(.magritte-old-layout) .magritte-root___1YkGM_1-2-2:not(.magritte-focused___dy9eY_1-2-2):not(.magritte-invalid___RJHLG_1-2-2):not(.magritte-disabled___hD00s_1-2-2):hover{
|
|
98
|
-
background-color:var(--magritte-color-component-input-background-state-field-hovered-v19-1-0);
|
|
99
|
-
box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-hovered-v19-1-0);
|
|
100
|
-
--magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-state-content-hovered-v19-1-0);
|
|
101
|
-
}
|
|
102
|
-
body:not(.magritte-old-layout) .magritte-root___1YkGM_1-2-2:not(.magritte-focused___dy9eY_1-2-2):not(.magritte-invalid___RJHLG_1-2-2):not(.magritte-disabled___hD00s_1-2-2):hover .magritte-field___IMwTW_1-2-2::placeholder{
|
|
103
|
-
color:var(--magritte-color-component-input-text-state-placeholder-hovered-v19-1-0);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
.magritte-root___1YkGM_1-2-2:not(.magritte-disabled___hD00s_1-2-2){
|
|
107
|
-
cursor:text;
|
|
108
|
-
}
|
|
109
|
-
.magritte-root___1YkGM_1-2-2.magritte-focused___dy9eY_1-2-2{
|
|
110
|
-
background-color:var(--magritte-color-component-input-background-state-field-focused-v19-1-0);
|
|
111
|
-
box-shadow:inset 0 0 0 2px var(--magritte-color-component-input-stroke-state-field-focused-v19-1-0);
|
|
112
|
-
--magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-state-content-focused-v19-1-0);
|
|
113
|
-
}
|
|
114
|
-
.magritte-root___1YkGM_1-2-2.magritte-focused___dy9eY_1-2-2 .magritte-field___IMwTW_1-2-2::placeholder{
|
|
115
|
-
color:var(--magritte-color-component-input-text-state-placeholder-focused-v19-1-0);
|
|
116
|
-
}
|
|
117
|
-
.magritte-root___1YkGM_1-2-2.magritte-invalid___RJHLG_1-2-2{
|
|
118
|
-
background-color:var(--magritte-color-component-input-background-state-field-invalid-v19-1-0);
|
|
119
|
-
box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-invalid-v19-1-0);
|
|
120
|
-
--magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-state-content-invalid-v19-1-0);
|
|
121
|
-
}
|
|
122
|
-
.magritte-root___1YkGM_1-2-2.magritte-invalid___RJHLG_1-2-2 .magritte-field___IMwTW_1-2-2::placeholder{
|
|
123
|
-
color:var(--magritte-color-component-input-text-state-placeholder-invalid-v19-1-0);
|
|
124
|
-
}
|
|
125
|
-
.magritte-root___1YkGM_1-2-2.magritte-disabled___hD00s_1-2-2{
|
|
126
|
-
background-color:var(--magritte-color-component-input-background-state-field-disabled-v19-1-0);
|
|
127
|
-
box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-disabled-v19-1-0);
|
|
128
|
-
--magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-state-content-disabled-v19-1-0);
|
|
129
|
-
--magritte-ui-chip-text-color-override:var(--magritte-color-component-input-chips-text-state-neutral-disable-v19-1-0);
|
|
130
|
-
--magritte-ui-chip-background-color-override:var(--magritte-color-component-input-chips-background-state-neutral-disable-v19-1-0);
|
|
131
|
-
}
|
|
132
|
-
.magritte-root___1YkGM_1-2-2.magritte-disabled___hD00s_1-2-2 .magritte-field___IMwTW_1-2-2::placeholder{
|
|
133
|
-
color:var(--magritte-color-component-input-text-state-placeholder-disabled-v19-1-0);
|
|
134
|
-
}
|
|
135
|
-
.magritte-root___1YkGM_1-2-2.magritte-focus-visible___wdNv6_1-2-2{
|
|
136
|
-
outline:var(--magritte-color-component-input-stroke-state-accent-focused-accessible-v19-1-0) solid 4px;
|
|
137
|
-
}
|
|
138
|
-
.magritte-root___1YkGM_1-2-2.magritte-focus-visible___wdNv6_1-2-2.magritte-invalid___RJHLG_1-2-2{
|
|
139
|
-
outline-color:var(--magritte-color-component-input-stroke-state-negative-focused-accessible-v19-1-0);
|
|
140
|
-
}
|
|
141
|
-
.magritte-large___OjLba_1-2-2{
|
|
142
|
-
padding:var(--magritte-static-space-300-v19-1-0);
|
|
143
|
-
}
|
|
144
|
-
.magritte-large___OjLba_1-2-2 .magritte-field___IMwTW_1-2-2{
|
|
145
|
-
padding-left:var(--magritte-static-space-100-v19-1-0);
|
|
146
|
-
}
|
|
147
|
-
.magritte-large___OjLba_1-2-2 .magritte-icon___7eYOG_1-2-2{
|
|
148
|
-
top:var(--magritte-static-space-300-v19-1-0);
|
|
149
|
-
right:var(--magritte-static-space-400-v19-1-0);
|
|
150
|
-
}
|
|
151
|
-
.magritte-medium___SSyhM_1-2-2{
|
|
152
|
-
padding:var(--magritte-static-space-200-v19-1-0);
|
|
153
|
-
}
|
|
154
|
-
.magritte-medium___SSyhM_1-2-2 .magritte-field___IMwTW_1-2-2{
|
|
155
|
-
padding-left:var(--magritte-static-space-100-v19-1-0);
|
|
156
|
-
}
|
|
157
|
-
.magritte-medium___SSyhM_1-2-2 .magritte-icon___7eYOG_1-2-2{
|
|
158
|
-
top:var(--magritte-static-space-200-v19-1-0);
|
|
159
|
-
right:var(--magritte-static-space-300-v19-1-0);
|
|
160
|
-
}
|
|
161
|
-
.magritte-scrollable-area___7XKlY_1-2-2{
|
|
162
|
-
display:flex;
|
|
163
|
-
align-items:flex-start;
|
|
164
|
-
overflow-y:auto;
|
|
165
|
-
width:100%;
|
|
166
|
-
padding-right:24px;
|
|
167
|
-
}
|
|
168
|
-
.magritte-chips-and-input___wx6To_1-2-2{
|
|
169
|
-
display:flex;
|
|
170
|
-
gap:6px;
|
|
171
|
-
flex-wrap:wrap;
|
|
172
|
-
align-items:center;
|
|
173
|
-
width:100%;
|
|
174
|
-
margin-right:var(--magritte-static-space-300-v19-1-0);
|
|
175
|
-
}
|
|
176
|
-
.magritte-field___IMwTW_1-2-2{
|
|
177
|
-
border:0;
|
|
178
|
-
background:none;
|
|
179
|
-
flex-grow:1;
|
|
180
|
-
height:32px;
|
|
181
|
-
width:50px;
|
|
182
|
-
outline:none;
|
|
183
|
-
font-family:var(--magritte-typography-label-2-regular-font-family-v19-1-0);
|
|
184
|
-
font-weight:var(--magritte-typography-label-2-regular-font-weight-v19-1-0);
|
|
185
|
-
line-height:var(--magritte-typography-label-2-regular-line-height-v19-1-0);
|
|
186
|
-
font-size:var(--magritte-typography-label-2-regular-font-size-v19-1-0);
|
|
187
|
-
letter-spacing:var(--magritte-typography-label-2-regular-letter-spacing-v19-1-0);
|
|
188
|
-
text-indent:var(--magritte-typography-label-2-regular-text-indent-v19-1-0);
|
|
189
|
-
text-transform:var(--magritte-typography-label-2-regular-text-transform-v19-1-0);
|
|
190
|
-
text-decoration:var(--magritte-typography-label-2-regular-text-decoration-v19-1-0);
|
|
191
|
-
}
|
|
192
|
-
.magritte-field___IMwTW_1-2-2::placeholder{
|
|
193
|
-
color:var(--magritte-color-component-input-text-placeholder-v19-1-0);
|
|
194
|
-
}
|
|
195
|
-
.magritte-icon___7eYOG_1-2-2{
|
|
196
|
-
display:inline-flex;
|
|
197
|
-
margin-left:auto;
|
|
198
|
-
padding:var(--magritte-static-space-100-v19-1-0) 0;
|
|
199
|
-
position:absolute;
|
|
200
|
-
transition-property:transform;
|
|
201
|
-
transition-duration:var(--magritte-semantic-animation-ease-in-out-100-duration-v19-1-0);
|
|
202
|
-
transition-timing-function:var(--magritte-semantic-animation-ease-in-out-100-timing-function-v19-1-0);
|
|
203
|
-
}
|
|
204
|
-
.magritte-icon_expanded___PtihN_1-2-2{
|
|
205
|
-
transform:rotate(-180deg);
|
|
206
|
-
--magritte-ui-icon-color-override:var(--magritte-color-component-input-icon-state-chevron-focused-v19-1-0);
|
|
207
|
-
}
|