@rescui/select 0.18.1-RUI-297-Add-react-compiler-to-the-packages-build-dbbefd7b8.10 → 0.18.1-RUI-297-Add-react-compiler-to-the-packages-build-8aaaed4be.39

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 (40) 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.js +121 -33
  7. package/lib/hooks/use-actual-size-from-css.js +46 -17
  8. package/lib/hooks/use-focus.js +54 -10
  9. package/lib/hooks/use-hover.js +54 -10
  10. package/lib/hooks/use-label-focus.js +45 -15
  11. package/lib/hooks/use-multi-handlers.js +114 -36
  12. package/lib/hooks/use-no-memo-getter.d.ts +5 -0
  13. package/lib/hooks/use-no-memo-getter.js +15 -0
  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.js +43 -16
  17. package/lib/hooks/use-safe-id.d.ts +3 -5
  18. package/lib/hooks/use-safe-id.js +7 -12
  19. package/lib/index.css +229 -189
  20. package/lib/multiselect.js +533 -158
  21. package/lib/native-select.js +412 -116
  22. package/lib/parts/form-trigger-wrapper.js +159 -39
  23. package/lib/parts/hidden-select.js +105 -29
  24. package/lib/parts/icons.js +164 -44
  25. package/lib/parts/list-box.js +294 -72
  26. package/lib/parts/multi-trigger.js +106 -43
  27. package/lib/parts/native-select-options-with-groups.js +154 -52
  28. package/lib/parts/popup-content.d.ts +2 -2
  29. package/lib/parts/popup-content.js +145 -45
  30. package/lib/public-api.p.css +5 -0
  31. package/lib/public-api.pcss +5 -0
  32. package/lib/select-basic.js +456 -136
  33. package/lib/select-searchable.js +435 -142
  34. package/lib/select.js +228 -56
  35. package/lib/styles/common.p.module.css.js +29 -29
  36. package/lib/styles/form-trigger.p.module.css.js +12 -12
  37. package/lib/styles/list-box.p.module.css.js +13 -13
  38. package/lib/types.d.ts +5 -0
  39. package/lib/utils/get-text-from-nodes.js +1 -1
  40. package/package.json +9 -8
@@ -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 cn from 'classnames';
@@ -46,143 +48,437 @@ const THEME_STYLES = {
46
48
  dark: styles.themeDark
47
49
  }; // eslint-disable-next-line complexity
48
50
 
49
- const NativeSelect = _ref => {
50
- let {
51
- options = [],
52
- size = 'm',
53
- theme: themeFromProps,
54
- className = null,
55
- id,
56
- style,
57
- value,
58
- onChange,
59
- placeholder,
60
- isLoading = false,
61
- isDisabled = false,
62
- isClearable = false,
63
- trigger,
64
- label,
65
- note,
66
- error,
67
- reserveErrorLine = false,
68
- noOptionsMessage,
69
- name,
70
- boldLabel = true,
71
- ...rest
72
- } = _ref;
51
+ const NativeSelect = t0 => {
52
+ const $ = c(102);
53
+ let error;
54
+ let id;
55
+ let label;
56
+ let name;
57
+ let noOptionsMessage;
58
+ let note;
59
+ let onChange;
60
+ let placeholder;
61
+ let rest;
62
+ let style;
63
+ let t1;
64
+ let t2;
65
+ let t3;
66
+ let t4;
67
+ let t5;
68
+ let t6;
69
+ let t7;
70
+ let t8;
71
+ let themeFromProps;
72
+ let trigger;
73
+ let value;
74
+
75
+ if ($[0] !== t0) {
76
+ ({
77
+ options: t1,
78
+ size: t2,
79
+ theme: themeFromProps,
80
+ className: t3,
81
+ id,
82
+ style,
83
+ value,
84
+ onChange,
85
+ placeholder,
86
+ isLoading: t4,
87
+ isDisabled: t5,
88
+ isClearable: t6,
89
+ trigger,
90
+ label,
91
+ note,
92
+ error,
93
+ reserveErrorLine: t7,
94
+ noOptionsMessage,
95
+ name,
96
+ boldLabel: t8,
97
+ ...rest
98
+ } = t0);
99
+ $[0] = t0;
100
+ $[1] = error;
101
+ $[2] = id;
102
+ $[3] = label;
103
+ $[4] = name;
104
+ $[5] = noOptionsMessage;
105
+ $[6] = note;
106
+ $[7] = onChange;
107
+ $[8] = placeholder;
108
+ $[9] = rest;
109
+ $[10] = style;
110
+ $[11] = t1;
111
+ $[12] = t2;
112
+ $[13] = t3;
113
+ $[14] = t4;
114
+ $[15] = t5;
115
+ $[16] = t6;
116
+ $[17] = t7;
117
+ $[18] = t8;
118
+ $[19] = themeFromProps;
119
+ $[20] = trigger;
120
+ $[21] = value;
121
+ } else {
122
+ error = $[1];
123
+ id = $[2];
124
+ label = $[3];
125
+ name = $[4];
126
+ noOptionsMessage = $[5];
127
+ note = $[6];
128
+ onChange = $[7];
129
+ placeholder = $[8];
130
+ rest = $[9];
131
+ style = $[10];
132
+ t1 = $[11];
133
+ t2 = $[12];
134
+ t3 = $[13];
135
+ t4 = $[14];
136
+ t5 = $[15];
137
+ t6 = $[16];
138
+ t7 = $[17];
139
+ t8 = $[18];
140
+ themeFromProps = $[19];
141
+ trigger = $[20];
142
+ value = $[21];
143
+ }
144
+
145
+ let t9;
146
+
147
+ if ($[22] !== t1) {
148
+ t9 = t1 === undefined ? [] : t1;
149
+ $[22] = t1;
150
+ $[23] = t9;
151
+ } else {
152
+ t9 = $[23];
153
+ }
154
+
155
+ const options = t9;
156
+ const size = t2 === undefined ? "m" : t2;
157
+ const className = t3 === undefined ? null : t3;
158
+ const isLoading = t4 === undefined ? false : t4;
159
+ const isDisabled = t5 === undefined ? false : t5;
160
+ const isClearable = t6 === undefined ? false : t6;
161
+ const reserveErrorLine = t7 === undefined ? false : t7;
162
+ const boldLabel = t8 === undefined ? true : t8;
73
163
  const triggerRef = React.useRef(null);
164
+ let t10;
165
+
166
+ if ($[24] !== error || $[25] !== isDisabled || $[26] !== label || $[27] !== note) {
167
+ t10 = {
168
+ prefix: "native-select",
169
+ error,
170
+ description: note,
171
+ label,
172
+ fieldRef: triggerRef,
173
+ isDisabled
174
+ };
175
+ $[24] = error;
176
+ $[25] = isDisabled;
177
+ $[26] = label;
178
+ $[27] = note;
179
+ $[28] = t10;
180
+ } else {
181
+ t10 = $[28];
182
+ }
183
+
74
184
  const {
75
185
  labelProps,
76
186
  fieldProps,
77
187
  errorMessageProps,
78
188
  descriptionProps
79
- } = useA11y({
80
- prefix: 'native-select',
81
- error,
82
- description: note,
83
- label,
84
- fieldRef: triggerRef,
85
- isDisabled
86
- });
189
+ } = useA11y(t10);
190
+ let t11;
191
+
192
+ if ($[29] !== onChange) {
193
+ t11 = () => onChange(null);
87
194
 
88
- const reset = () => onChange(null);
195
+ $[29] = onChange;
196
+ $[30] = t11;
197
+ } else {
198
+ t11 = $[30];
199
+ }
89
200
 
201
+ const reset = t11;
90
202
  const theme = useThemeWithUndefined(themeFromProps);
203
+ let t12;
91
204
 
92
- const handleChange = event => {
93
- const newValue = event.target.value;
94
- const selectedOption = findSelectedOption(options, newValue);
205
+ if ($[31] !== onChange || $[32] !== options) {
206
+ t12 = event => {
207
+ const newValue = event.target.value;
208
+ const selectedOption = findSelectedOption(options, newValue);
95
209
 
96
- if (onChange) {
97
- onChange(selectedOption);
98
- }
99
- }; // delete it when triggerFunc is migrated to the css-states instead of js-props for hover/focus
100
- // replace it with ":focus + &" selector in that case
210
+ if (onChange) {
211
+ onChange(selectedOption);
212
+ }
213
+ };
101
214
 
215
+ $[31] = onChange;
216
+ $[32] = options;
217
+ $[33] = t12;
218
+ } else {
219
+ t12 = $[33];
220
+ }
221
+
222
+ const handleChange = t12;
223
+ let t13;
224
+
225
+ if ($[34] !== isDisabled) {
226
+ t13 = {
227
+ isDisabled
228
+ };
229
+ $[34] = isDisabled;
230
+ $[35] = t13;
231
+ } else {
232
+ t13 = $[35];
233
+ }
102
234
 
103
235
  const {
104
236
  isFocused,
105
237
  focusProps
106
- } = useFocus({
107
- isDisabled
108
- }); // same as above, could be replaced with ":hover + &" selector
238
+ } = useFocus(t13);
239
+ let t14;
240
+
241
+ if ($[36] !== isDisabled) {
242
+ t14 = {
243
+ isDisabled
244
+ };
245
+ $[36] = isDisabled;
246
+ $[37] = t14;
247
+ } else {
248
+ t14 = $[37];
249
+ }
109
250
 
110
251
  const {
111
252
  isHovered,
112
253
  hoverProps
113
- } = useHover({
114
- isDisabled
115
- });
116
- const emptyListMessage = getEmptyMessage({
117
- isLoading,
118
- isNothingFound: false,
119
- noOptionsMessage
120
- });
121
- return /*#__PURE__*/React.createElement("div", {
122
- className: cn(className, styles.root, SIZE_STYLES[size], THEME_STYLES[theme], styles.classic, isDisabled ? styles.disabled : styles.enabled, Boolean(error) && styles.error),
123
- id: id,
124
- style: style,
125
- "data-test": "native-select"
126
- }, /*#__PURE__*/React.createElement(FormTriggerWrapper, {
127
- theme: theme,
128
- size: size,
129
- disabled: isDisabled,
130
- label: label,
131
- labelProps: mergeProps(labelProps),
132
- boldLabel: boldLabel,
133
- error: error,
134
- errorMessageProps: errorMessageProps,
135
- reserveErrorLine: reserveErrorLine,
136
- note: note,
137
- descriptionProps: descriptionProps
138
- }, /*#__PURE__*/React.createElement("div", {
139
- className: styles.triggerContainer
140
- }, /*#__PURE__*/React.createElement("select", { ...rest,
141
- ...mergeProps(fieldProps, focusProps, hoverProps, {
142
- onKeyDown: event => {
143
- // backspace and backspace removing the last selected item (when popup is closed)
144
- if (isClearable && (event.key === 'Backspace' || event.key === 'Delete')) {
145
- reset();
146
- }
254
+ } = useHover(t14);
255
+ let t15;
256
+
257
+ if ($[38] !== isLoading || $[39] !== noOptionsMessage) {
258
+ t15 = getEmptyMessage({
259
+ isLoading,
260
+ isNothingFound: false,
261
+ noOptionsMessage
262
+ });
263
+ $[38] = isLoading;
264
+ $[39] = noOptionsMessage;
265
+ $[40] = t15;
266
+ } else {
267
+ t15 = $[40];
268
+ }
269
+
270
+ const emptyListMessage = t15;
271
+ const t16 = SIZE_STYLES[size];
272
+ const t17 = THEME_STYLES[theme];
273
+ const t18 = isDisabled ? styles.disabled : styles.enabled;
274
+ const t19 = Boolean(error) && styles.error;
275
+ let t20;
276
+
277
+ if ($[41] !== className || $[42] !== t16 || $[43] !== t17 || $[44] !== t18 || $[45] !== t19) {
278
+ t20 = cn(className, styles.root, t16, t17, styles.classic, t18, t19);
279
+ $[41] = className;
280
+ $[42] = t16;
281
+ $[43] = t17;
282
+ $[44] = t18;
283
+ $[45] = t19;
284
+ $[46] = t20;
285
+ } else {
286
+ t20 = $[46];
287
+ }
288
+
289
+ let t21;
290
+
291
+ if ($[47] !== labelProps) {
292
+ t21 = mergeProps(labelProps);
293
+ $[47] = labelProps;
294
+ $[48] = t21;
295
+ } else {
296
+ t21 = $[48];
297
+ }
298
+
299
+ let t22;
300
+
301
+ if ($[49] !== isClearable || $[50] !== reset) {
302
+ t22 = event_0 => {
303
+ if (isClearable && (event_0.key === "Backspace" || event_0.key === "Delete")) {
304
+ reset();
147
305
  }
148
- }),
149
- ref: triggerRef,
150
- "data-test": "native-select_select",
151
- "data-rs-internal": 'select-native__select',
152
- className: styles.select,
153
- disabled: isDisabled ? true : undefined,
154
- onChange: handleChange,
155
- name: name,
156
- value: value?.value ?? ''
157
- }, /*#__PURE__*/React.createElement(NativeSelectOptionsWithGroups, {
158
- optionsWithGroups: options,
159
- placeholder: placeholder,
160
- emptyListMessage: emptyListMessage
161
- })), trigger ? trigger({
162
- focused: isFocused,
163
- hovered: isHovered,
164
- selectedLabel: value?.label,
165
- selectedValue: value?.value,
166
- placeholder
167
- }) : /*#__PURE__*/React.createElement("div", {
168
- className: cn(styles.trigger),
169
- "data-test": 'native-select_trigger',
170
- "data-rs-internal": 'select-native-trigger'
171
- }, /*#__PURE__*/React.createElement("span", {
172
- className: cn(styles.triggerText, !value?.value && styles.labelNotSelected),
173
- "data-test": 'native-select_trigger_text',
174
- "aria-hidden": "true"
175
- }, value?.label ?? placeholder), /*#__PURE__*/React.createElement(Icons, {
176
- isLoading: isLoading,
177
- triggerId: fieldProps.id,
178
- onClear: () => {
179
- reset();
180
- triggerRef.current?.focus({
181
- focusVisible: false
182
- });
183
- },
184
- canHaveClearIcon: isClearable && !isDisabled && Boolean(value?.value)
185
- })))));
306
+ };
307
+
308
+ $[49] = isClearable;
309
+ $[50] = reset;
310
+ $[51] = t22;
311
+ } else {
312
+ t22 = $[51];
313
+ }
314
+
315
+ let t23;
316
+
317
+ if ($[52] !== fieldProps || $[53] !== focusProps || $[54] !== hoverProps || $[55] !== t22) {
318
+ t23 = mergeProps(fieldProps, focusProps, hoverProps, {
319
+ onKeyDown: t22
320
+ });
321
+ $[52] = fieldProps;
322
+ $[53] = focusProps;
323
+ $[54] = hoverProps;
324
+ $[55] = t22;
325
+ $[56] = t23;
326
+ } else {
327
+ t23 = $[56];
328
+ }
329
+
330
+ const t24 = isDisabled ? true : undefined;
331
+ const t25 = value?.value ?? "";
332
+ let t26;
333
+
334
+ if ($[57] !== emptyListMessage || $[58] !== options || $[59] !== placeholder) {
335
+ t26 = /*#__PURE__*/React.createElement(NativeSelectOptionsWithGroups, {
336
+ optionsWithGroups: options,
337
+ placeholder: placeholder,
338
+ emptyListMessage: emptyListMessage
339
+ });
340
+ $[57] = emptyListMessage;
341
+ $[58] = options;
342
+ $[59] = placeholder;
343
+ $[60] = t26;
344
+ } else {
345
+ t26 = $[60];
346
+ }
347
+
348
+ let t27;
349
+
350
+ if ($[61] !== handleChange || $[62] !== name || $[63] !== rest || $[64] !== t23 || $[65] !== t24 || $[66] !== t25 || $[67] !== t26) {
351
+ t27 = /*#__PURE__*/React.createElement("select", _extends({}, rest, t23, {
352
+ ref: triggerRef,
353
+ "data-test": "native-select_select",
354
+ "data-rs-internal": "select-native__select",
355
+ className: styles.select,
356
+ disabled: t24,
357
+ onChange: handleChange,
358
+ name: name,
359
+ value: t25
360
+ }), t26);
361
+ $[61] = handleChange;
362
+ $[62] = name;
363
+ $[63] = rest;
364
+ $[64] = t23;
365
+ $[65] = t24;
366
+ $[66] = t25;
367
+ $[67] = t26;
368
+ $[68] = t27;
369
+ } else {
370
+ t27 = $[68];
371
+ }
372
+
373
+ let t28;
374
+
375
+ if ($[69] !== fieldProps || $[70] !== isClearable || $[71] !== isDisabled || $[72] !== isFocused || $[73] !== isHovered || $[74] !== isLoading || $[75] !== placeholder || $[76] !== reset || $[77] !== trigger || $[78] !== value?.label || $[79] !== value?.value) {
376
+ t28 = trigger ? trigger({
377
+ focused: isFocused,
378
+ hovered: isHovered,
379
+ selectedLabel: value?.label,
380
+ selectedValue: value?.value,
381
+ placeholder
382
+ }) : /*#__PURE__*/React.createElement("div", {
383
+ className: cn(styles.trigger),
384
+ "data-test": "native-select_trigger",
385
+ "data-rs-internal": "select-native-trigger"
386
+ }, /*#__PURE__*/React.createElement("span", {
387
+ className: cn(styles.triggerText, !value?.value && styles.labelNotSelected),
388
+ "data-test": "native-select_trigger_text",
389
+ "aria-hidden": "true"
390
+ }, value?.label ?? placeholder), /*#__PURE__*/React.createElement(Icons, {
391
+ isLoading: isLoading,
392
+ triggerId: fieldProps.id,
393
+ onClear: () => {
394
+ reset();
395
+ triggerRef.current?.focus({
396
+ focusVisible: false
397
+ });
398
+ },
399
+ canHaveClearIcon: isClearable && !isDisabled && Boolean(value?.value)
400
+ }));
401
+ $[69] = fieldProps;
402
+ $[70] = isClearable;
403
+ $[71] = isDisabled;
404
+ $[72] = isFocused;
405
+ $[73] = isHovered;
406
+ $[74] = isLoading;
407
+ $[75] = placeholder;
408
+ $[76] = reset;
409
+ $[77] = trigger;
410
+ $[78] = value?.label;
411
+ $[79] = value?.value;
412
+ $[80] = t28;
413
+ } else {
414
+ t28 = $[80];
415
+ }
416
+
417
+ let t29;
418
+
419
+ if ($[81] !== t27 || $[82] !== t28) {
420
+ t29 = /*#__PURE__*/React.createElement("div", {
421
+ className: styles.triggerContainer
422
+ }, t27, t28);
423
+ $[81] = t27;
424
+ $[82] = t28;
425
+ $[83] = t29;
426
+ } else {
427
+ t29 = $[83];
428
+ }
429
+
430
+ let t30;
431
+
432
+ if ($[84] !== boldLabel || $[85] !== descriptionProps || $[86] !== error || $[87] !== errorMessageProps || $[88] !== isDisabled || $[89] !== label || $[90] !== note || $[91] !== reserveErrorLine || $[92] !== size || $[93] !== t21 || $[94] !== t29 || $[95] !== theme) {
433
+ t30 = /*#__PURE__*/React.createElement(FormTriggerWrapper, {
434
+ theme: theme,
435
+ size: size,
436
+ disabled: isDisabled,
437
+ label: label,
438
+ labelProps: t21,
439
+ boldLabel: boldLabel,
440
+ error: error,
441
+ errorMessageProps: errorMessageProps,
442
+ reserveErrorLine: reserveErrorLine,
443
+ note: note,
444
+ descriptionProps: descriptionProps
445
+ }, t29);
446
+ $[84] = boldLabel;
447
+ $[85] = descriptionProps;
448
+ $[86] = error;
449
+ $[87] = errorMessageProps;
450
+ $[88] = isDisabled;
451
+ $[89] = label;
452
+ $[90] = note;
453
+ $[91] = reserveErrorLine;
454
+ $[92] = size;
455
+ $[93] = t21;
456
+ $[94] = t29;
457
+ $[95] = theme;
458
+ $[96] = t30;
459
+ } else {
460
+ t30 = $[96];
461
+ }
462
+
463
+ let t31;
464
+
465
+ if ($[97] !== id || $[98] !== style || $[99] !== t20 || $[100] !== t30) {
466
+ t31 = /*#__PURE__*/React.createElement("div", {
467
+ className: t20,
468
+ id: id,
469
+ style: style,
470
+ "data-test": "native-select"
471
+ }, t30);
472
+ $[97] = id;
473
+ $[98] = style;
474
+ $[99] = t20;
475
+ $[100] = t30;
476
+ $[101] = t31;
477
+ } else {
478
+ t31 = $[101];
479
+ }
480
+
481
+ return t31;
186
482
  };
187
483
 
188
484
  NativeSelect.propTypes = {