@rescui/select 0.18.4 → 0.19.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.
Files changed (37) hide show
  1. package/lib/_virtual/check-outline.js +294 -63
  2. package/lib/_virtual/close-outline.js +294 -63
  3. package/lib/_virtual/down-outline.js +294 -63
  4. package/lib/_virtual/index.css.js +12 -12
  5. package/lib/_virtual/loading-outline.js +310 -79
  6. package/lib/hooks/use-a11y.d.ts +2 -2
  7. package/lib/hooks/use-a11y.js +124 -36
  8. package/lib/hooks/use-actual-size-from-css.d.ts +3 -4
  9. package/lib/hooks/use-actual-size-from-css.js +47 -18
  10. package/lib/hooks/use-focus.js +54 -10
  11. package/lib/hooks/use-hover.js +54 -10
  12. package/lib/hooks/use-label-focus.js +45 -15
  13. package/lib/hooks/use-multi-handlers.js +113 -38
  14. package/lib/hooks/use-options.d.ts +2 -1
  15. package/lib/hooks/use-options.js +92 -56
  16. package/lib/hooks/use-primary-contrast-css-var-transfer.d.ts +2 -3
  17. package/lib/hooks/use-primary-contrast-css-var-transfer.js +45 -15
  18. package/lib/index.css +194 -194
  19. package/lib/multiselect.js +527 -174
  20. package/lib/native-select.js +416 -118
  21. package/lib/parts/form-trigger-wrapper.js +159 -39
  22. package/lib/parts/hidden-select.js +105 -29
  23. package/lib/parts/icons.js +191 -49
  24. package/lib/parts/list-box.js +277 -74
  25. package/lib/parts/multi-trigger.d.ts +2 -2
  26. package/lib/parts/multi-trigger.js +125 -48
  27. package/lib/parts/native-select-options-with-groups.js +154 -52
  28. package/lib/parts/popup-content.d.ts +3 -3
  29. package/lib/parts/popup-content.js +146 -46
  30. package/lib/select-basic.js +456 -147
  31. package/lib/select-searchable.js +448 -155
  32. package/lib/select.js +228 -56
  33. package/lib/styles/common.p.module.css.js +29 -29
  34. package/lib/styles/form-trigger.p.module.css.js +12 -12
  35. package/lib/styles/list-box.p.module.css.js +13 -13
  36. package/lib/utils/get-text-from-nodes.js +1 -1
  37. package/package.json +13 -12
package/lib/select.js CHANGED
@@ -1,4 +1,6 @@
1
1
  "use client";
2
+ import _extends from '@babel/runtime-corejs3/helpers/esm/extends';
3
+ import { c } from 'react-compiler-runtime';
2
4
  import React from 'react';
3
5
  import PropTypes from 'prop-types';
4
6
  import { ErrorMessage } from '@rescui/form-field';
@@ -22,64 +24,234 @@ const MODE_STYLES = {
22
24
  rock: styles.rock
23
25
  };
24
26
 
25
- const Select = _ref => {
26
- let {
27
- options = [],
28
- size = 'm',
29
- mode = 'classic',
30
- theme: themeFromProps,
31
- className,
32
- style,
33
- value,
34
- onChange,
35
- placeholder,
36
- isClearable = false,
37
- isLoading = false,
38
- isDisabled = false,
39
- isSearchable = false,
40
- noOptionsMessage,
41
- error,
42
- placement = 'bottom',
43
- renderInTrigger = false,
44
- disableFlip = false,
45
- boldLabel = true,
46
- reserveErrorLine = false,
47
- note,
48
- maxVisibleItems = 5,
49
- id,
50
- ...restProps
51
- } = _ref;
27
+ const Select = t0 => {
28
+ const $ = c(65);
29
+ let className;
30
+ let error;
31
+ let id;
32
+ let noOptionsMessage;
33
+ let note;
34
+ let onChange;
35
+ let placeholder;
36
+ let restProps;
37
+ let style;
38
+ let t1;
39
+ let t10;
40
+ let t11;
41
+ let t12;
42
+ let t13;
43
+ let t2;
44
+ let t3;
45
+ let t4;
46
+ let t5;
47
+ let t6;
48
+ let t7;
49
+ let t8;
50
+ let t9;
51
+ let themeFromProps;
52
+ let value;
53
+
54
+ if ($[0] !== t0) {
55
+ ({
56
+ options: t1,
57
+ size: t2,
58
+ mode: t3,
59
+ theme: themeFromProps,
60
+ className,
61
+ style,
62
+ value,
63
+ onChange,
64
+ placeholder,
65
+ isClearable: t4,
66
+ isLoading: t5,
67
+ isDisabled: t6,
68
+ isSearchable: t7,
69
+ noOptionsMessage,
70
+ error,
71
+ placement: t8,
72
+ renderInTrigger: t9,
73
+ disableFlip: t10,
74
+ boldLabel: t11,
75
+ reserveErrorLine: t12,
76
+ note,
77
+ maxVisibleItems: t13,
78
+ id,
79
+ ...restProps
80
+ } = t0);
81
+ $[0] = t0;
82
+ $[1] = className;
83
+ $[2] = error;
84
+ $[3] = id;
85
+ $[4] = noOptionsMessage;
86
+ $[5] = note;
87
+ $[6] = onChange;
88
+ $[7] = placeholder;
89
+ $[8] = restProps;
90
+ $[9] = style;
91
+ $[10] = t1;
92
+ $[11] = t10;
93
+ $[12] = t11;
94
+ $[13] = t12;
95
+ $[14] = t13;
96
+ $[15] = t2;
97
+ $[16] = t3;
98
+ $[17] = t4;
99
+ $[18] = t5;
100
+ $[19] = t6;
101
+ $[20] = t7;
102
+ $[21] = t8;
103
+ $[22] = t9;
104
+ $[23] = themeFromProps;
105
+ $[24] = value;
106
+ } else {
107
+ className = $[1];
108
+ error = $[2];
109
+ id = $[3];
110
+ noOptionsMessage = $[4];
111
+ note = $[5];
112
+ onChange = $[6];
113
+ placeholder = $[7];
114
+ restProps = $[8];
115
+ style = $[9];
116
+ t1 = $[10];
117
+ t10 = $[11];
118
+ t11 = $[12];
119
+ t12 = $[13];
120
+ t13 = $[14];
121
+ t2 = $[15];
122
+ t3 = $[16];
123
+ t4 = $[17];
124
+ t5 = $[18];
125
+ t6 = $[19];
126
+ t7 = $[20];
127
+ t8 = $[21];
128
+ t9 = $[22];
129
+ themeFromProps = $[23];
130
+ value = $[24];
131
+ }
132
+
133
+ let t14;
134
+
135
+ if ($[25] !== t1) {
136
+ t14 = t1 === undefined ? [] : t1;
137
+ $[25] = t1;
138
+ $[26] = t14;
139
+ } else {
140
+ t14 = $[26];
141
+ }
142
+
143
+ const options = t14;
144
+ const size = t2 === undefined ? "m" : t2;
145
+ const mode = t3 === undefined ? "classic" : t3;
146
+ const isClearable = t4 === undefined ? false : t4;
147
+ const isLoading = t5 === undefined ? false : t5;
148
+ const isDisabled = t6 === undefined ? false : t6;
149
+ const isSearchable = t7 === undefined ? false : t7;
150
+ const placement = t8 === undefined ? "bottom" : t8;
151
+ const renderInTrigger = t9 === undefined ? false : t9;
152
+ const disableFlip = t10 === undefined ? false : t10;
153
+ const boldLabel = t11 === undefined ? true : t11;
154
+ const reserveErrorLine = t12 === undefined ? false : t12;
155
+ const maxVisibleItems = t13 === undefined ? 5 : t13;
52
156
  const theme = useThemeWithUndefined(themeFromProps);
53
157
  const InnerSingleComponent = isSearchable ? SelectSearchable : SelectBasic;
54
- return /*#__PURE__*/React.createElement("div", {
55
- className: cn(className, styles.root, THEME_STYLES[theme], SIZE_STYLES[size], MODE_STYLES[mode], isDisabled ? styles.disabled : styles.enabled, Boolean(error) && styles.error, isSearchable && styles.searchable),
56
- id: id,
57
- style: style,
58
- "data-test": "select"
59
- }, /*#__PURE__*/React.createElement(InnerSingleComponent, { ...restProps,
60
- options: options,
61
- size: size,
62
- mode: mode,
63
- theme: theme,
64
- className: className,
65
- id: id,
66
- style: style,
67
- value: value,
68
- onChange: onChange,
69
- placeholder: placeholder,
70
- isClearable: isClearable,
71
- isLoading: isLoading,
72
- isDisabled: isDisabled,
73
- noOptionsMessage: noOptionsMessage,
74
- error: error,
75
- placement: placement,
76
- renderInTrigger: renderInTrigger,
77
- disableFlip: disableFlip,
78
- boldLabel: boldLabel,
79
- reserveErrorLine: reserveErrorLine,
80
- note: note,
81
- maxVisibleItems: maxVisibleItems
82
- }));
158
+ const t15 = THEME_STYLES[theme];
159
+ const t16 = SIZE_STYLES[size];
160
+ const t17 = MODE_STYLES[mode];
161
+ const t18 = isDisabled ? styles.disabled : styles.enabled;
162
+ const t19 = Boolean(error) && styles.error;
163
+ const t20 = isSearchable && styles.searchable;
164
+ let t21;
165
+
166
+ if ($[27] !== className || $[28] !== t15 || $[29] !== t16 || $[30] !== t17 || $[31] !== t18 || $[32] !== t19 || $[33] !== t20) {
167
+ t21 = cn(className, styles.root, t15, t16, t17, t18, t19, t20);
168
+ $[27] = className;
169
+ $[28] = t15;
170
+ $[29] = t16;
171
+ $[30] = t17;
172
+ $[31] = t18;
173
+ $[32] = t19;
174
+ $[33] = t20;
175
+ $[34] = t21;
176
+ } else {
177
+ t21 = $[34];
178
+ }
179
+
180
+ let t22;
181
+
182
+ if ($[35] !== InnerSingleComponent || $[36] !== boldLabel || $[37] !== className || $[38] !== disableFlip || $[39] !== error || $[40] !== id || $[41] !== isClearable || $[42] !== isDisabled || $[43] !== isLoading || $[44] !== maxVisibleItems || $[45] !== mode || $[46] !== noOptionsMessage || $[47] !== note || $[48] !== onChange || $[49] !== options || $[50] !== placeholder || $[51] !== placement || $[52] !== renderInTrigger || $[53] !== reserveErrorLine || $[54] !== restProps || $[55] !== size || $[56] !== style || $[57] !== theme || $[58] !== value) {
183
+ t22 = /*#__PURE__*/React.createElement(InnerSingleComponent, _extends({}, restProps, {
184
+ options: options,
185
+ size: size,
186
+ mode: mode,
187
+ theme: theme,
188
+ className: className,
189
+ id: id,
190
+ style: style,
191
+ value: value,
192
+ onChange: onChange,
193
+ placeholder: placeholder,
194
+ isClearable: isClearable,
195
+ isLoading: isLoading,
196
+ isDisabled: isDisabled,
197
+ noOptionsMessage: noOptionsMessage,
198
+ error: error,
199
+ placement: placement,
200
+ renderInTrigger: renderInTrigger,
201
+ disableFlip: disableFlip,
202
+ boldLabel: boldLabel,
203
+ reserveErrorLine: reserveErrorLine,
204
+ note: note,
205
+ maxVisibleItems: maxVisibleItems
206
+ }));
207
+ $[35] = InnerSingleComponent;
208
+ $[36] = boldLabel;
209
+ $[37] = className;
210
+ $[38] = disableFlip;
211
+ $[39] = error;
212
+ $[40] = id;
213
+ $[41] = isClearable;
214
+ $[42] = isDisabled;
215
+ $[43] = isLoading;
216
+ $[44] = maxVisibleItems;
217
+ $[45] = mode;
218
+ $[46] = noOptionsMessage;
219
+ $[47] = note;
220
+ $[48] = onChange;
221
+ $[49] = options;
222
+ $[50] = placeholder;
223
+ $[51] = placement;
224
+ $[52] = renderInTrigger;
225
+ $[53] = reserveErrorLine;
226
+ $[54] = restProps;
227
+ $[55] = size;
228
+ $[56] = style;
229
+ $[57] = theme;
230
+ $[58] = value;
231
+ $[59] = t22;
232
+ } else {
233
+ t22 = $[59];
234
+ }
235
+
236
+ let t23;
237
+
238
+ if ($[60] !== id || $[61] !== style || $[62] !== t21 || $[63] !== t22) {
239
+ t23 = /*#__PURE__*/React.createElement("div", {
240
+ className: t21,
241
+ id: id,
242
+ style: style,
243
+ "data-test": "select"
244
+ }, t22);
245
+ $[60] = id;
246
+ $[61] = style;
247
+ $[62] = t21;
248
+ $[63] = t22;
249
+ $[64] = t23;
250
+ } else {
251
+ t23 = $[64];
252
+ }
253
+
254
+ return t23;
83
255
  };
84
256
 
85
257
  Select.propTypes = {
@@ -1,32 +1,32 @@
1
1
  var styles = {
2
- "themeLight": "_themeLight_1scc37q_6",
3
- "themeDark": "_themeDark_1scc37q_9",
4
- "sizeS": "_sizeS_1scc37q_13",
5
- "sizeM": "_sizeM_1scc37q_16",
6
- "sizeL": "_sizeL_1scc37q_19",
7
- "classic": "_classic_1scc37q_23",
8
- "rock": "_rock_1scc37q_26",
9
- "root": "_root_1scc37q_30",
10
- "triggerContainer": "_triggerContainer_1scc37q_36",
11
- "disabled": "_disabled_1scc37q_41",
12
- "trigger": "_trigger_1scc37q_36",
13
- "error": "_error_1scc37q_78",
14
- "enabled": "_enabled_1scc37q_83",
15
- "searchable": "_searchable_1scc37q_98",
16
- "canBeMultiline": "_canBeMultiline_1scc37q_124",
17
- "triggerText": "_triggerText_1scc37q_128",
18
- "searchInput": "_searchInput_1scc37q_129",
19
- "labelNotSelected": "_labelNotSelected_1scc37q_159",
20
- "multi": "_multi_1scc37q_211",
21
- "tagsContainer": "_tagsContainer_1scc37q_226",
22
- "tag": "_tag_1scc37q_226",
23
- "filledTag": "_filledTag_1scc37q_248",
24
- "iconsWrapper": "_iconsWrapper_1scc37q_256",
25
- "toggle": "_toggle_1scc37q_274",
26
- "icon": "_icon_1scc37q_256",
27
- "clearIcon": "_clearIcon_1scc37q_359",
28
- "visuallyHidden": "_visuallyHidden_1scc37q_421",
29
- "select": "_select_1scc37q_438",
30
- "observable": "_observable_1scc37q_460"
2
+ "themeLight": "_themeLight_1g1ww85_6",
3
+ "themeDark": "_themeDark_1g1ww85_9",
4
+ "sizeS": "_sizeS_1g1ww85_13",
5
+ "sizeM": "_sizeM_1g1ww85_16",
6
+ "sizeL": "_sizeL_1g1ww85_19",
7
+ "classic": "_classic_1g1ww85_23",
8
+ "rock": "_rock_1g1ww85_26",
9
+ "root": "_root_1g1ww85_30",
10
+ "triggerContainer": "_triggerContainer_1g1ww85_36",
11
+ "disabled": "_disabled_1g1ww85_41",
12
+ "trigger": "_trigger_1g1ww85_36",
13
+ "error": "_error_1g1ww85_78",
14
+ "enabled": "_enabled_1g1ww85_83",
15
+ "searchable": "_searchable_1g1ww85_98",
16
+ "canBeMultiline": "_canBeMultiline_1g1ww85_124",
17
+ "triggerText": "_triggerText_1g1ww85_128",
18
+ "searchInput": "_searchInput_1g1ww85_129",
19
+ "labelNotSelected": "_labelNotSelected_1g1ww85_159",
20
+ "multi": "_multi_1g1ww85_211",
21
+ "tagsContainer": "_tagsContainer_1g1ww85_226",
22
+ "tag": "_tag_1g1ww85_226",
23
+ "filledTag": "_filledTag_1g1ww85_248",
24
+ "iconsWrapper": "_iconsWrapper_1g1ww85_256",
25
+ "toggle": "_toggle_1g1ww85_274",
26
+ "icon": "_icon_1g1ww85_256",
27
+ "clearIcon": "_clearIcon_1g1ww85_359",
28
+ "visuallyHidden": "_visuallyHidden_1g1ww85_421",
29
+ "select": "_select_1g1ww85_438",
30
+ "observable": "_observable_1g1ww85_460"
31
31
  };
32
32
  export { styles as default };
@@ -1,15 +1,15 @@
1
1
  var styles = {
2
- "themeLight": "_themeLight_1e63s3b_6",
3
- "themeDark": "_themeDark_1e63s3b_9",
4
- "sizeS": "_sizeS_1e63s3b_13",
5
- "sizeM": "_sizeM_1e63s3b_16",
6
- "sizeL": "_sizeL_1e63s3b_19",
7
- "main": "_main_1e63s3b_23",
8
- "label": "_label_1e63s3b_27",
9
- "disabled": "_disabled_1e63s3b_33",
10
- "footer": "_footer_1e63s3b_38",
11
- "errorMessage": "_errorMessage_1e63s3b_45",
12
- "error": "_error_1e63s3b_45",
13
- "note": "_note_1e63s3b_54"
2
+ "themeLight": "_themeLight_mmg9mc_6",
3
+ "themeDark": "_themeDark_mmg9mc_9",
4
+ "sizeS": "_sizeS_mmg9mc_13",
5
+ "sizeM": "_sizeM_mmg9mc_16",
6
+ "sizeL": "_sizeL_mmg9mc_19",
7
+ "main": "_main_mmg9mc_23",
8
+ "label": "_label_mmg9mc_27",
9
+ "disabled": "_disabled_mmg9mc_33",
10
+ "footer": "_footer_mmg9mc_38",
11
+ "errorMessage": "_errorMessage_mmg9mc_45",
12
+ "error": "_error_mmg9mc_45",
13
+ "note": "_note_mmg9mc_54"
14
14
  };
15
15
  export { styles as default };
@@ -1,16 +1,16 @@
1
1
  var styles = {
2
- "sizeS": "_sizeS_1ud47ut_6",
3
- "sizeM": "_sizeM_1ud47ut_9",
4
- "sizeL": "_sizeL_1ud47ut_12",
5
- "classic": "_classic_1ud47ut_16",
6
- "rock": "_rock_1ud47ut_26",
7
- "listBox": "_listBox_1ud47ut_37",
8
- "item": "_item_1ud47ut_53",
9
- "selected": "_selected_1ud47ut_91",
10
- "disabled": "_disabled_1ud47ut_105",
11
- "checkIcon": "_checkIcon_1ud47ut_112",
12
- "visible": "_visible_1ud47ut_119",
13
- "divider": "_divider_1ud47ut_126",
14
- "groupHeader": "_groupHeader_1ud47ut_140"
2
+ "sizeS": "_sizeS_1yr2c12_6",
3
+ "sizeM": "_sizeM_1yr2c12_9",
4
+ "sizeL": "_sizeL_1yr2c12_12",
5
+ "classic": "_classic_1yr2c12_16",
6
+ "rock": "_rock_1yr2c12_26",
7
+ "listBox": "_listBox_1yr2c12_37",
8
+ "item": "_item_1yr2c12_53",
9
+ "selected": "_selected_1yr2c12_91",
10
+ "disabled": "_disabled_1yr2c12_105",
11
+ "checkIcon": "_checkIcon_1yr2c12_112",
12
+ "visible": "_visible_1yr2c12_119",
13
+ "divider": "_divider_1yr2c12_126",
14
+ "groupHeader": "_groupHeader_1yr2c12_140"
15
15
  };
16
16
  export { styles as default };
@@ -16,7 +16,7 @@ const getTextFromNodes = function (node) {
16
16
  return node.map(n => getTextFromNodes(n, depth + 1)).join('');
17
17
  }
18
18
 
19
- if ( /*#__PURE__*/React.isValidElement(node) && node?.type?.toString()?.toLowerCase() !== 'svg') {
19
+ if ( /*#__PURE__*/ /*#__PURE__*/React.isValidElement(node) && node?.type?.toString()?.toLowerCase() !== 'svg') {
20
20
  return getTextFromNodes(node.props.children, depth + 1);
21
21
  }
22
22
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rescui/select",
3
- "version": "0.18.4",
3
+ "version": "0.19.1",
4
4
  "description": "",
5
5
  "license": "Apache-2.0",
6
6
  "author": "JetBrains",
@@ -17,23 +17,24 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "@babel/runtime-corejs3": "^7.26.0",
20
- "@rescui/dropdown": "^0.11.2",
21
- "@rescui/form-field": "^0.1.7",
22
- "@rescui/tag": "^0.13.13",
23
- "@rescui/use-resize-observer": "^0.3.4",
20
+ "@rescui/dropdown": "^0.12.1",
21
+ "@rescui/form-field": "^0.2.1",
22
+ "@rescui/tag": "^0.14.1",
23
+ "@rescui/use-resize-observer": "^0.4.0",
24
24
  "classnames": "^2.2.6",
25
- "downshift": "^9.3.2",
25
+ "downshift": "^9.4.0",
26
+ "react-compiler-runtime": "^1.0.0",
26
27
  "scroll-into-view-if-needed": "3.1.0"
27
28
  },
28
29
  "peerDependencies": {
29
- "@rescui/ui-contexts": "^0.6.0",
30
+ "@rescui/ui-contexts": "^0.7.0",
30
31
  "prop-types": "^15",
31
- "react": ">=16.8.0 <20"
32
+ "react": ">=17.0.0 <20"
32
33
  },
33
34
  "devDependencies": {
34
- "@rescui/colors": "^0.3.3",
35
- "@rescui/scripts": "^0.5.2",
36
- "@rescui/typography": "^0.27.4",
35
+ "@rescui/colors": "^0.3.4",
36
+ "@rescui/scripts": "^0.5.3",
37
+ "@rescui/typography": "^0.28.1",
37
38
  "@rescui/visual-regression": "^0.1.4",
38
39
  "sniffr": "^1.2.0"
39
40
  },
@@ -42,5 +43,5 @@
42
43
  "build-pcss-api": "rescui-scripts build-pcss-api --file public-api.p.css"
43
44
  },
44
45
  "nx": {},
45
- "gitHead": "088ae53b3deca2dbdcd11c8519ab6a0e70deeb23"
46
+ "gitHead": "ce4c6c5e3fd5aede0006f6ef8e655fc0ab394c0f"
46
47
  }