@rescui/select 0.18.2 → 0.18.3-RUI-308-Fix-select-issues-405b9fa40.12
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/lib/_virtual/index.css.js +12 -12
- package/lib/index.css +211 -207
- package/lib/multiselect.js +2 -1
- package/lib/parts/hidden-select.js +3 -1
- package/lib/parts/icons.d.ts +1 -1
- package/lib/parts/icons.js +4 -2
- package/lib/parts/list-box.js +4 -2
- package/lib/select-basic.js +9 -4
- package/lib/select-searchable.js +23 -19
- package/lib/styles/common.p.module.css.js +29 -29
- package/lib/styles/form-trigger.p.module.css.js +12 -12
- package/lib/styles/list-box.p.module.css.js +13 -13
- package/lib/types.d.ts +1 -0
- package/package.json +10 -10
package/lib/multiselect.js
CHANGED
|
@@ -236,7 +236,8 @@ function Multiselect(_ref) {
|
|
|
236
236
|
selectedMap,
|
|
237
237
|
highlightedIndex,
|
|
238
238
|
getItemProps,
|
|
239
|
-
menuProps
|
|
239
|
+
menuProps,
|
|
240
|
+
isMulti: true
|
|
240
241
|
};
|
|
241
242
|
return /*#__PURE__*/React.createElement("div", {
|
|
242
243
|
className: cn(className, styles.root, THEME_STYLES[theme], SIZE_STYLES[size], MODE_STYLES[mode], isDisabled ? styles.disabled : styles.enabled, Boolean(error) && styles.error),
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import styles from '../styles/common.p.module.css.js';
|
|
3
3
|
|
|
4
|
+
const shouldRenderOption = option => 'value' in option && String(option.value);
|
|
5
|
+
|
|
4
6
|
const HiddenSelect = _ref => {
|
|
5
7
|
let {
|
|
6
8
|
name,
|
|
@@ -29,7 +31,7 @@ const HiddenSelect = _ref => {
|
|
|
29
31
|
const arrayValue = isMultiple ? value : [value]; // merge options with value in case the provided value is not included in options
|
|
30
32
|
|
|
31
33
|
const allItems = Array.from( // map will deduplicate options by values
|
|
32
|
-
new Map((!value ? options : [...options, ...arrayValue]).map(item => [item.value, item])).values());
|
|
34
|
+
new Map((!value ? options : [...options, ...arrayValue]).map(item => [item.value, item])).values()).filter(shouldRenderOption);
|
|
33
35
|
return /*#__PURE__*/React.createElement("div", {
|
|
34
36
|
className: styles.visuallyHidden
|
|
35
37
|
}, /*#__PURE__*/React.createElement("select", { ...selectProps
|
package/lib/parts/icons.d.ts
CHANGED
|
@@ -13,5 +13,5 @@ export type IconsProps = {
|
|
|
13
13
|
onClear?: () => void;
|
|
14
14
|
triggerId?: string;
|
|
15
15
|
};
|
|
16
|
-
export declare const Icons: ({ isLoading, canHaveClearIcon, onClear, triggerId }: IconsProps) => React.JSX.Element;
|
|
16
|
+
export declare const Icons: ({ isLoading, canHaveClearIcon, onClear, triggerId, ...restProps }: IconsProps) => React.JSX.Element;
|
|
17
17
|
export {};
|
package/lib/parts/icons.js
CHANGED
|
@@ -50,10 +50,12 @@ const Icons = _ref2 => {
|
|
|
50
50
|
isLoading,
|
|
51
51
|
canHaveClearIcon,
|
|
52
52
|
onClear,
|
|
53
|
-
triggerId
|
|
53
|
+
triggerId,
|
|
54
|
+
...restProps
|
|
54
55
|
} = _ref2;
|
|
55
56
|
return /*#__PURE__*/React.createElement("div", {
|
|
56
|
-
className: styles.iconsWrapper
|
|
57
|
+
className: styles.iconsWrapper,
|
|
58
|
+
...restProps
|
|
57
59
|
}, /*#__PURE__*/React.createElement(ClearOrLoading, {
|
|
58
60
|
isLoading: isLoading,
|
|
59
61
|
canHaveClearIcon: canHaveClearIcon,
|
package/lib/parts/list-box.js
CHANGED
|
@@ -25,12 +25,14 @@ function Option(_ref) {
|
|
|
25
25
|
const {
|
|
26
26
|
selectedMap,
|
|
27
27
|
getItemProps,
|
|
28
|
-
highlightedIndex
|
|
28
|
+
highlightedIndex,
|
|
29
|
+
isMulti
|
|
29
30
|
} = state;
|
|
30
31
|
const index = item.index;
|
|
31
32
|
const isSelected = selectedMap.has(item.key);
|
|
32
33
|
const isHighlighted = highlightedIndex === item.index;
|
|
33
34
|
const isDisabled = item.disabled;
|
|
35
|
+
const shouldRenderCheckIcon = isMulti || isSelected;
|
|
34
36
|
return /*#__PURE__*/React.createElement("li", { ...getItemProps({
|
|
35
37
|
item,
|
|
36
38
|
index,
|
|
@@ -42,7 +44,7 @@ function Option(_ref) {
|
|
|
42
44
|
"data-rs-internal": "select-list-box__item",
|
|
43
45
|
"data-focused": isHighlighted,
|
|
44
46
|
"data-test": `select-options-list__item_${item.key}`
|
|
45
|
-
}, /*#__PURE__*/React.createElement("span", null, item.label), /*#__PURE__*/React.createElement(CheckOutlineIcon, {
|
|
47
|
+
}, /*#__PURE__*/React.createElement("span", null, item.label), shouldRenderCheckIcon && /*#__PURE__*/React.createElement(CheckOutlineIcon, {
|
|
46
48
|
"data-rs-internal": "select-list-box__check-icon",
|
|
47
49
|
className: cn(styles.checkIcon, isSelected && styles.visible)
|
|
48
50
|
}));
|
package/lib/select-basic.js
CHANGED
|
@@ -71,8 +71,7 @@ function SelectBasic(_ref) {
|
|
|
71
71
|
getLabelProps,
|
|
72
72
|
getMenuProps,
|
|
73
73
|
highlightedIndex,
|
|
74
|
-
getItemProps
|
|
75
|
-
reset
|
|
74
|
+
getItemProps
|
|
76
75
|
} = useSelect({
|
|
77
76
|
items: flattenedOptions,
|
|
78
77
|
itemToString,
|
|
@@ -99,9 +98,14 @@ function SelectBasic(_ref) {
|
|
|
99
98
|
return item && item.disabled;
|
|
100
99
|
}
|
|
101
100
|
|
|
102
|
-
});
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
const reset = () => {
|
|
104
|
+
onChange?.(null);
|
|
105
|
+
}; // Downshift composes the ref into a callback ref without reading it during render.
|
|
103
106
|
// eslint-disable-next-line react-hooks/refs
|
|
104
107
|
|
|
108
|
+
|
|
105
109
|
const menuProps = getMenuProps({
|
|
106
110
|
ref: menuRef
|
|
107
111
|
}, {
|
|
@@ -142,7 +146,8 @@ function SelectBasic(_ref) {
|
|
|
142
146
|
selectedMap,
|
|
143
147
|
highlightedIndex,
|
|
144
148
|
getItemProps,
|
|
145
|
-
menuProps
|
|
149
|
+
menuProps,
|
|
150
|
+
isMulti: false
|
|
146
151
|
};
|
|
147
152
|
return /*#__PURE__*/React.createElement(FormTriggerWrapper, {
|
|
148
153
|
theme: theme,
|
package/lib/select-searchable.js
CHANGED
|
@@ -76,7 +76,6 @@ function SelectSearchable(_ref) {
|
|
|
76
76
|
getInputProps,
|
|
77
77
|
highlightedIndex,
|
|
78
78
|
getItemProps,
|
|
79
|
-
reset,
|
|
80
79
|
setInputValue
|
|
81
80
|
} = useCombobox({
|
|
82
81
|
onInputValueChange(_ref2) {
|
|
@@ -118,13 +117,15 @@ function SelectSearchable(_ref) {
|
|
|
118
117
|
onIsOpenChange(_ref4) {
|
|
119
118
|
let {
|
|
120
119
|
isOpen: newIsOpen,
|
|
121
|
-
selectedItem: newSelectedItem
|
|
120
|
+
selectedItem: newSelectedItem,
|
|
121
|
+
inputValue: newInputValue
|
|
122
122
|
} = _ref4;
|
|
123
|
+
const inputValueFromSelectedItem = itemToString(newSelectedItem);
|
|
123
124
|
|
|
124
125
|
if (newIsOpen) {
|
|
125
126
|
setFilterString('');
|
|
126
|
-
} else {
|
|
127
|
-
setInputValue(
|
|
127
|
+
} else if (newInputValue !== inputValueFromSelectedItem) {
|
|
128
|
+
setInputValue(inputValueFromSelectedItem);
|
|
128
129
|
}
|
|
129
130
|
},
|
|
130
131
|
|
|
@@ -147,9 +148,15 @@ function SelectSearchable(_ref) {
|
|
|
147
148
|
}
|
|
148
149
|
}
|
|
149
150
|
|
|
150
|
-
});
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
const reset = () => {
|
|
154
|
+
setInputValue('');
|
|
155
|
+
onChange?.(null);
|
|
156
|
+
}; // Downshift composes the ref into a callback ref without reading it during render.
|
|
151
157
|
// eslint-disable-next-line react-hooks/refs
|
|
152
158
|
|
|
159
|
+
|
|
153
160
|
const menuProps = getMenuProps({
|
|
154
161
|
ref: menuRef
|
|
155
162
|
}, {
|
|
@@ -178,7 +185,8 @@ function SelectSearchable(_ref) {
|
|
|
178
185
|
selectedMap,
|
|
179
186
|
highlightedIndex,
|
|
180
187
|
getItemProps,
|
|
181
|
-
menuProps
|
|
188
|
+
menuProps,
|
|
189
|
+
isMulti: false
|
|
182
190
|
};
|
|
183
191
|
return /*#__PURE__*/React.createElement(FormTriggerWrapper, {
|
|
184
192
|
theme: theme,
|
|
@@ -219,6 +227,10 @@ function SelectSearchable(_ref) {
|
|
|
219
227
|
className: styles.triggerContainer,
|
|
220
228
|
"data-open": isOpen,
|
|
221
229
|
"data-label-focused": isFocusedByLabel
|
|
230
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
231
|
+
className: styles.trigger,
|
|
232
|
+
"data-test": "select__trigger",
|
|
233
|
+
ref: triggerRefForDropdown
|
|
222
234
|
}, /*#__PURE__*/React.createElement("input", { ...rest,
|
|
223
235
|
...mergeProps(fieldProps, // aria-invalid & aria-describedby, rest are overridden by inputProps,
|
|
224
236
|
inputProps, labelFocusForTriggerProps),
|
|
@@ -226,25 +238,17 @@ function SelectSearchable(_ref) {
|
|
|
226
238
|
className: styles.searchInput,
|
|
227
239
|
placeholder: placeholder,
|
|
228
240
|
"data-test": "select__trigger_input"
|
|
229
|
-
}), /*#__PURE__*/React.createElement(
|
|
230
|
-
role: "button",
|
|
231
|
-
...mergeProps(getToggleButtonProps(), {
|
|
232
|
-
ref: triggerRefForDropdown,
|
|
233
|
-
onFocus: () => {
|
|
234
|
-
inputRef.current?.focus();
|
|
235
|
-
}
|
|
236
|
-
}),
|
|
237
|
-
tabIndex: undefined,
|
|
238
|
-
className: styles.trigger,
|
|
239
|
-
"data-test": "select__trigger"
|
|
240
|
-
}, /*#__PURE__*/React.createElement(Icons, {
|
|
241
|
+
}), /*#__PURE__*/React.createElement(Icons, {
|
|
241
242
|
isLoading: isLoading,
|
|
242
243
|
canHaveClearIcon: isClearable && !isDisabled && hasValue,
|
|
243
244
|
onClear: () => {
|
|
244
245
|
reset();
|
|
245
246
|
inputRef.current?.focus();
|
|
246
247
|
},
|
|
247
|
-
triggerId: inputProps.id
|
|
248
|
+
triggerId: inputProps.id,
|
|
249
|
+
...mergeProps(getToggleButtonProps(), {
|
|
250
|
+
role: 'button'
|
|
251
|
+
})
|
|
248
252
|
})));
|
|
249
253
|
}
|
|
250
254
|
}));
|
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
var styles = {
|
|
2
|
-
"themeLight": "
|
|
3
|
-
"themeDark": "
|
|
4
|
-
"sizeS": "
|
|
5
|
-
"sizeM": "
|
|
6
|
-
"sizeL": "
|
|
7
|
-
"classic": "
|
|
8
|
-
"rock": "
|
|
9
|
-
"root": "
|
|
10
|
-
"triggerContainer": "
|
|
11
|
-
"disabled": "
|
|
12
|
-
"trigger": "
|
|
13
|
-
"error": "
|
|
14
|
-
"enabled": "
|
|
15
|
-
"searchable": "
|
|
16
|
-
"canBeMultiline": "
|
|
17
|
-
"triggerText": "
|
|
18
|
-
"searchInput": "
|
|
19
|
-
"labelNotSelected": "
|
|
20
|
-
"multi": "
|
|
21
|
-
"tagsContainer": "
|
|
22
|
-
"tag": "
|
|
23
|
-
"filledTag": "
|
|
24
|
-
"iconsWrapper": "
|
|
25
|
-
"toggle": "
|
|
26
|
-
"icon": "
|
|
27
|
-
"clearIcon": "
|
|
28
|
-
"visuallyHidden": "
|
|
29
|
-
"select": "
|
|
30
|
-
"observable": "
|
|
2
|
+
"themeLight": "_themeLight_b7lwf6_6",
|
|
3
|
+
"themeDark": "_themeDark_b7lwf6_9",
|
|
4
|
+
"sizeS": "_sizeS_b7lwf6_13",
|
|
5
|
+
"sizeM": "_sizeM_b7lwf6_16",
|
|
6
|
+
"sizeL": "_sizeL_b7lwf6_19",
|
|
7
|
+
"classic": "_classic_b7lwf6_23",
|
|
8
|
+
"rock": "_rock_b7lwf6_26",
|
|
9
|
+
"root": "_root_b7lwf6_30",
|
|
10
|
+
"triggerContainer": "_triggerContainer_b7lwf6_36",
|
|
11
|
+
"disabled": "_disabled_b7lwf6_41",
|
|
12
|
+
"trigger": "_trigger_b7lwf6_36",
|
|
13
|
+
"error": "_error_b7lwf6_78",
|
|
14
|
+
"enabled": "_enabled_b7lwf6_83",
|
|
15
|
+
"searchable": "_searchable_b7lwf6_98",
|
|
16
|
+
"canBeMultiline": "_canBeMultiline_b7lwf6_124",
|
|
17
|
+
"triggerText": "_triggerText_b7lwf6_128",
|
|
18
|
+
"searchInput": "_searchInput_b7lwf6_129",
|
|
19
|
+
"labelNotSelected": "_labelNotSelected_b7lwf6_159",
|
|
20
|
+
"multi": "_multi_b7lwf6_212",
|
|
21
|
+
"tagsContainer": "_tagsContainer_b7lwf6_227",
|
|
22
|
+
"tag": "_tag_b7lwf6_227",
|
|
23
|
+
"filledTag": "_filledTag_b7lwf6_249",
|
|
24
|
+
"iconsWrapper": "_iconsWrapper_b7lwf6_257",
|
|
25
|
+
"toggle": "_toggle_b7lwf6_275",
|
|
26
|
+
"icon": "_icon_b7lwf6_257",
|
|
27
|
+
"clearIcon": "_clearIcon_b7lwf6_360",
|
|
28
|
+
"visuallyHidden": "_visuallyHidden_b7lwf6_422",
|
|
29
|
+
"select": "_select_b7lwf6_439",
|
|
30
|
+
"observable": "_observable_b7lwf6_461"
|
|
31
31
|
};
|
|
32
32
|
export { styles as default };
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
var styles = {
|
|
2
|
-
"themeLight": "
|
|
3
|
-
"themeDark": "
|
|
4
|
-
"sizeS": "
|
|
5
|
-
"sizeM": "
|
|
6
|
-
"sizeL": "
|
|
7
|
-
"main": "
|
|
8
|
-
"label": "
|
|
9
|
-
"disabled": "
|
|
10
|
-
"footer": "
|
|
11
|
-
"errorMessage": "
|
|
12
|
-
"error": "
|
|
13
|
-
"note": "
|
|
2
|
+
"themeLight": "_themeLight_xu4mx4_6",
|
|
3
|
+
"themeDark": "_themeDark_xu4mx4_9",
|
|
4
|
+
"sizeS": "_sizeS_xu4mx4_13",
|
|
5
|
+
"sizeM": "_sizeM_xu4mx4_16",
|
|
6
|
+
"sizeL": "_sizeL_xu4mx4_19",
|
|
7
|
+
"main": "_main_xu4mx4_23",
|
|
8
|
+
"label": "_label_xu4mx4_27",
|
|
9
|
+
"disabled": "_disabled_xu4mx4_33",
|
|
10
|
+
"footer": "_footer_xu4mx4_38",
|
|
11
|
+
"errorMessage": "_errorMessage_xu4mx4_45",
|
|
12
|
+
"error": "_error_xu4mx4_45",
|
|
13
|
+
"note": "_note_xu4mx4_54"
|
|
14
14
|
};
|
|
15
15
|
export { styles as default };
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
var styles = {
|
|
2
|
-
"sizeS": "
|
|
3
|
-
"sizeM": "
|
|
4
|
-
"sizeL": "
|
|
5
|
-
"classic": "
|
|
6
|
-
"rock": "
|
|
7
|
-
"listBox": "
|
|
8
|
-
"item": "
|
|
9
|
-
"selected": "
|
|
10
|
-
"disabled": "
|
|
11
|
-
"checkIcon": "
|
|
12
|
-
"visible": "
|
|
13
|
-
"divider": "
|
|
14
|
-
"groupHeader": "
|
|
2
|
+
"sizeS": "_sizeS_1nom7ru_6",
|
|
3
|
+
"sizeM": "_sizeM_1nom7ru_9",
|
|
4
|
+
"sizeL": "_sizeL_1nom7ru_12",
|
|
5
|
+
"classic": "_classic_1nom7ru_16",
|
|
6
|
+
"rock": "_rock_1nom7ru_26",
|
|
7
|
+
"listBox": "_listBox_1nom7ru_37",
|
|
8
|
+
"item": "_item_1nom7ru_53",
|
|
9
|
+
"selected": "_selected_1nom7ru_91",
|
|
10
|
+
"disabled": "_disabled_1nom7ru_105",
|
|
11
|
+
"checkIcon": "_checkIcon_1nom7ru_112",
|
|
12
|
+
"visible": "_visible_1nom7ru_119",
|
|
13
|
+
"divider": "_divider_1nom7ru_126",
|
|
14
|
+
"groupHeader": "_groupHeader_1nom7ru_140"
|
|
15
15
|
};
|
|
16
16
|
export { styles as default };
|
package/lib/types.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rescui/select",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.3-RUI-308-Fix-select-issues-405b9fa40.12+405b9fa40",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "JetBrains",
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@babel/runtime-corejs3": "^7.26.0",
|
|
20
|
-
"@rescui/dropdown": "
|
|
21
|
-
"@rescui/form-field": "
|
|
22
|
-
"@rescui/tag": "
|
|
23
|
-
"@rescui/use-resize-observer": "
|
|
20
|
+
"@rescui/dropdown": "0.11.3-RUI-308-Fix-select-issues-405b9fa40.12+405b9fa40",
|
|
21
|
+
"@rescui/form-field": "0.1.8-RUI-308-Fix-select-issues-405b9fa40.12+405b9fa40",
|
|
22
|
+
"@rescui/tag": "0.13.14-RUI-308-Fix-select-issues-405b9fa40.12+405b9fa40",
|
|
23
|
+
"@rescui/use-resize-observer": "0.3.5-RUI-308-Fix-select-issues-405b9fa40.12+405b9fa40",
|
|
24
24
|
"classnames": "^2.2.6",
|
|
25
25
|
"downshift": "^9.3.2",
|
|
26
26
|
"scroll-into-view-if-needed": "3.1.0"
|
|
@@ -31,10 +31,10 @@
|
|
|
31
31
|
"react": ">=16.8.0 <20"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@rescui/colors": "
|
|
35
|
-
"@rescui/scripts": "
|
|
36
|
-
"@rescui/typography": "
|
|
37
|
-
"@rescui/visual-regression": "
|
|
34
|
+
"@rescui/colors": "0.3.4-RUI-308-Fix-select-issues-405b9fa40.12+405b9fa40",
|
|
35
|
+
"@rescui/scripts": "0.5.2",
|
|
36
|
+
"@rescui/typography": "0.27.5-RUI-308-Fix-select-issues-405b9fa40.12+405b9fa40",
|
|
37
|
+
"@rescui/visual-regression": "0.1.4",
|
|
38
38
|
"sniffr": "^1.2.0"
|
|
39
39
|
},
|
|
40
40
|
"scripts": {
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
"build-pcss-api": "rescui-scripts build-pcss-api --file public-api.p.css"
|
|
43
43
|
},
|
|
44
44
|
"nx": {},
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "405b9fa40886b0ab6709c9185e8214599d2d792e"
|
|
46
46
|
}
|