@rescui/select 0.18.4 → 0.19.0

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 +12 -11
@@ -1,5 +1,7 @@
1
1
  "use client";
2
- import React, { useMemo, useRef } from 'react';
2
+ import _extends from '@babel/runtime-corejs3/helpers/esm/extends';
3
+ import { c } from 'react-compiler-runtime';
4
+ import React, { useState, useRef } from 'react';
3
5
  import cn from 'classnames';
4
6
  import { useSelect } from 'downshift';
5
7
  import { useThemeWithUndefined } from '@rescui/ui-contexts';
@@ -57,65 +59,262 @@ const stateReducer = (state, actionAndChanges) => {
57
59
  }; // eslint-disable-next-line complexity
58
60
 
59
61
 
60
- function Multiselect(_ref) {
61
- let {
62
- options = [],
63
- value,
64
- onChange,
65
- error,
66
- label,
67
- note,
68
- size = 'm',
69
- mode = 'classic',
70
- theme: themeFromProps,
71
- placement = 'bottom',
72
- renderInTrigger = false,
73
- disableFlip = false,
74
- isSingleLine = false,
75
- boldLabel = true,
76
- reserveErrorLine = false,
77
- maxVisibleItems = 5,
78
- isClearable = false,
79
- isLoading = false,
80
- isDisabled = false,
81
- name,
82
- noOptionsMessage,
83
- className,
84
- id,
85
- style,
86
- placeholder,
87
- ...rest
88
- } = _ref;
89
- const selectedItems = useMemo(() => value ?? [], [value]);
62
+ function Multiselect(t0) {
63
+ const $ = c(139);
64
+ let className;
65
+ let error;
66
+ let id;
67
+ let label;
68
+ let name;
69
+ let noOptionsMessage;
70
+ let note;
71
+ let onChange;
72
+ let placeholder;
73
+ let rest;
74
+ let style;
75
+ let t1;
76
+ let t10;
77
+ let t11;
78
+ let t12;
79
+ let t13;
80
+ let t2;
81
+ let t3;
82
+ let t4;
83
+ let t5;
84
+ let t6;
85
+ let t7;
86
+ let t8;
87
+ let t9;
88
+ let themeFromProps;
89
+ let value;
90
+
91
+ if ($[0] !== t0) {
92
+ ({
93
+ options: t1,
94
+ value,
95
+ onChange,
96
+ error,
97
+ label,
98
+ note,
99
+ size: t2,
100
+ mode: t3,
101
+ theme: themeFromProps,
102
+ placement: t4,
103
+ renderInTrigger: t5,
104
+ disableFlip: t6,
105
+ isSingleLine: t7,
106
+ boldLabel: t8,
107
+ reserveErrorLine: t9,
108
+ maxVisibleItems: t10,
109
+ isClearable: t11,
110
+ isLoading: t12,
111
+ isDisabled: t13,
112
+ name,
113
+ noOptionsMessage,
114
+ className,
115
+ id,
116
+ style,
117
+ placeholder,
118
+ ...rest
119
+ } = t0);
120
+ $[0] = t0;
121
+ $[1] = className;
122
+ $[2] = error;
123
+ $[3] = id;
124
+ $[4] = label;
125
+ $[5] = name;
126
+ $[6] = noOptionsMessage;
127
+ $[7] = note;
128
+ $[8] = onChange;
129
+ $[9] = placeholder;
130
+ $[10] = rest;
131
+ $[11] = style;
132
+ $[12] = t1;
133
+ $[13] = t10;
134
+ $[14] = t11;
135
+ $[15] = t12;
136
+ $[16] = t13;
137
+ $[17] = t2;
138
+ $[18] = t3;
139
+ $[19] = t4;
140
+ $[20] = t5;
141
+ $[21] = t6;
142
+ $[22] = t7;
143
+ $[23] = t8;
144
+ $[24] = t9;
145
+ $[25] = themeFromProps;
146
+ $[26] = value;
147
+ } else {
148
+ className = $[1];
149
+ error = $[2];
150
+ id = $[3];
151
+ label = $[4];
152
+ name = $[5];
153
+ noOptionsMessage = $[6];
154
+ note = $[7];
155
+ onChange = $[8];
156
+ placeholder = $[9];
157
+ rest = $[10];
158
+ style = $[11];
159
+ t1 = $[12];
160
+ t10 = $[13];
161
+ t11 = $[14];
162
+ t12 = $[15];
163
+ t13 = $[16];
164
+ t2 = $[17];
165
+ t3 = $[18];
166
+ t4 = $[19];
167
+ t5 = $[20];
168
+ t6 = $[21];
169
+ t7 = $[22];
170
+ t8 = $[23];
171
+ t9 = $[24];
172
+ themeFromProps = $[25];
173
+ value = $[26];
174
+ }
175
+
176
+ let t14;
177
+
178
+ if ($[27] !== t1) {
179
+ t14 = t1 === undefined ? [] : t1;
180
+ $[27] = t1;
181
+ $[28] = t14;
182
+ } else {
183
+ t14 = $[28];
184
+ }
185
+
186
+ const options = t14;
187
+ const size = t2 === undefined ? "m" : t2;
188
+ const mode = t3 === undefined ? "classic" : t3;
189
+ const placement = t4 === undefined ? "bottom" : t4;
190
+ const renderInTrigger = t5 === undefined ? false : t5;
191
+ const disableFlip = t6 === undefined ? false : t6;
192
+ const isSingleLine = t7 === undefined ? false : t7;
193
+ const boldLabel = t8 === undefined ? true : t8;
194
+ const reserveErrorLine = t9 === undefined ? false : t9;
195
+ const maxVisibleItems = t10 === undefined ? 5 : t10;
196
+ const isClearable = t11 === undefined ? false : t11;
197
+ const isLoading = t12 === undefined ? false : t12;
198
+ const isDisabled = t13 === undefined ? false : t13;
199
+ let t15;
200
+
201
+ if ($[29] !== value) {
202
+ t15 = value ?? [];
203
+ $[29] = value;
204
+ $[30] = t15;
205
+ } else {
206
+ t15 = $[30];
207
+ }
208
+
209
+ const selectedItems = t15;
90
210
  const theme = useThemeWithUndefined(themeFromProps);
91
- const triggerRef = useRef(null);
92
- const menuRef = useRef(null);
211
+ const [triggerEl, setTriggerEl] = useState(null);
212
+ const [menuEl, setMenuEl] = useState(null);
93
213
  const dropdownRef = useRef(null);
214
+ let t16;
215
+
216
+ if ($[31] !== onChange || $[32] !== selectedItems) {
217
+ t16 = {
218
+ selectedItems,
219
+ onChange
220
+ };
221
+ $[31] = onChange;
222
+ $[32] = selectedItems;
223
+ $[33] = t16;
224
+ } else {
225
+ t16 = $[33];
226
+ }
227
+
94
228
  const {
95
229
  selectedMap,
96
230
  removeItem: removeSelectedItem,
97
231
  addItem: addSelectedItem,
98
232
  removeAllItems: reset
99
- } = useMultiHandlers({
100
- selectedItems,
101
- onChange
102
- });
233
+ } = useMultiHandlers(t16);
103
234
  const {
104
235
  flattenedOptions,
105
236
  listBoxItems
106
237
  } = useOptions(options);
107
- const isListBoxEmpty = getRealItemsCnt(listBoxItems) === 0;
238
+ let t17;
239
+
240
+ if ($[34] !== listBoxItems) {
241
+ t17 = getRealItemsCnt(listBoxItems);
242
+ $[34] = listBoxItems;
243
+ $[35] = t17;
244
+ } else {
245
+ t17 = $[35];
246
+ }
247
+
248
+ const isListBoxEmpty = t17 === 0;
249
+ let t18;
250
+
251
+ if ($[36] !== error || $[37] !== isDisabled || $[38] !== note) {
252
+ t18 = {
253
+ prefix: "multiselect",
254
+ error,
255
+ description: note,
256
+ isDisabled
257
+ };
258
+ $[36] = error;
259
+ $[37] = isDisabled;
260
+ $[38] = note;
261
+ $[39] = t18;
262
+ } else {
263
+ t18 = $[39];
264
+ }
265
+
108
266
  const {
109
267
  fieldProps,
110
268
  errorMessageProps,
111
269
  descriptionProps,
112
270
  baseId
113
- } = useA11y({
114
- prefix: 'multiselect',
115
- error,
116
- description: note,
117
- isDisabled
118
- });
271
+ } = useA11y(t18);
272
+ let t19;
273
+
274
+ if ($[40] !== menuEl) {
275
+ t19 = (listItemEl, listEl) => {
276
+ scrollIntoView(listItemEl, {
277
+ scrollMode: "if-needed",
278
+ block: "nearest",
279
+ boundary: listEl ?? menuEl
280
+ });
281
+ };
282
+
283
+ $[40] = menuEl;
284
+ $[41] = t19;
285
+ } else {
286
+ t19 = $[41];
287
+ }
288
+
289
+ let t20;
290
+
291
+ if ($[42] !== addSelectedItem || $[43] !== removeSelectedItem || $[44] !== selectedMap) {
292
+ t20 = t21 => {
293
+ const {
294
+ selectedItem
295
+ } = t21;
296
+
297
+ if (!selectedItem) {
298
+ return;
299
+ }
300
+
301
+ const changedValue = getOptionValue(selectedItem);
302
+
303
+ if (selectedMap.has(changedValue)) {
304
+ removeSelectedItem(selectedItem);
305
+ } else {
306
+ addSelectedItem(selectedItem);
307
+ }
308
+ };
309
+
310
+ $[42] = addSelectedItem;
311
+ $[43] = removeSelectedItem;
312
+ $[44] = selectedMap;
313
+ $[45] = t20;
314
+ } else {
315
+ t20 = $[45];
316
+ }
317
+
119
318
  const {
120
319
  isOpen,
121
320
  getToggleButtonProps,
@@ -123,7 +322,7 @@ function Multiselect(_ref) {
123
322
  getMenuProps,
124
323
  highlightedIndex,
125
324
  getItemProps,
126
- setHighlightedIndex
325
+ setHighlightedIndex: t21
127
326
  } = useSelect({
128
327
  items: flattenedOptions,
129
328
  itemToString,
@@ -132,7 +331,6 @@ function Multiselect(_ref) {
132
331
 
133
332
  onIsOpenChange(newIsOpen) {
134
333
  if (newIsOpen) {
135
- // set the first selected item as a highlighted item if the popup is opened
136
334
  const firstSelectedKey = [...selectedMap.keys()][0];
137
335
 
138
336
  if (firstSelectedKey) {
@@ -142,177 +340,332 @@ function Multiselect(_ref) {
142
340
  },
143
341
 
144
342
  stateReducer,
145
- // there's no actual selection happening in the hook, we're doing it custom via controlled props.
146
343
  selectedItem: null,
147
- // defining our scroll behavior because on the first menu render the hook
148
- // doesn't know menuRef and use page as the scroll boundary
149
- scrollIntoView: (listItemEl, listEl) => {
150
- scrollIntoView(listItemEl, {
151
- scrollMode: 'if-needed',
152
- block: 'nearest',
153
- boundary: listEl ?? menuRef.current
154
- });
155
- },
156
- onSelectedItemChange: _ref2 => {
157
- let {
158
- selectedItem
159
- } = _ref2;
344
+ scrollIntoView: t19,
345
+ onSelectedItemChange: t20,
160
346
 
161
- if (!selectedItem) {
162
- return;
163
- }
164
-
165
- const changedValue = getOptionValue(selectedItem);
166
-
167
- if (selectedMap.has(changedValue)) {
168
- removeSelectedItem(selectedItem);
169
- } else {
170
- addSelectedItem(selectedItem);
171
- }
172
- },
173
-
174
- isItemDisabled(item) {
175
- return item && item.disabled;
347
+ isItemDisabled(item_0) {
348
+ return item_0 && item_0.disabled;
176
349
  }
177
350
 
178
351
  });
179
- const menuProps = getMenuProps( // Downshift composes the ref into a callback ref without reading it during render.
180
- // eslint-disable-next-line react-hooks/refs
181
- {
182
- ref: menuRef,
183
- 'aria-multiselectable': isListBoxEmpty ? undefined : 'true'
184
- }, {
185
- suppressRefError: true
186
- }); // Downshift composes the ref into a callback ref without reading it during render.
187
- // eslint-disable-next-line react-hooks/refs
188
-
189
- const triggerProps = getToggleButtonProps({
190
- ref: triggerRef,
191
- // eslint-disable-next-line complexity
192
- onKeyDown: event => {
193
- // prevent default behavior of Downshift when pressing Ctrl
194
- if (event.ctrlKey || event.metaKey) {
195
- event.preventDownshiftDefault = true;
196
- return;
197
- } // shift + arrow up/down selection (when popup is open)
198
-
352
+ const setHighlightedIndex = t21;
353
+ const t22 = isListBoxEmpty ? undefined : "true";
354
+ let menuProps;
355
+ let t23;
199
356
 
200
- if (isOpen && event.shiftKey && (event.key === 'ArrowUp' || event.key === 'ArrowDown')) {
201
- const newHighlightedIndex = event.key === 'ArrowUp' ? Math.max(highlightedIndex - 1, 0) : Math.min(highlightedIndex + 1, flattenedOptions.length - 1);
357
+ if ($[46] !== addSelectedItem || $[47] !== flattenedOptions || $[48] !== getMenuProps || $[49] !== getToggleButtonProps || $[50] !== highlightedIndex || $[51] !== isListBoxEmpty || $[52] !== isOpen || $[53] !== removeSelectedItem || $[54] !== reset || $[55] !== selectedItems || $[56] !== t22) {
358
+ menuProps = getMenuProps({
359
+ ref: setMenuEl,
360
+ "aria-multiselectable": t22
361
+ }, {
362
+ suppressRefError: true
363
+ });
364
+ let t24;
202
365
 
203
- if (newHighlightedIndex === highlightedIndex) {
366
+ if ($[59] !== addSelectedItem || $[60] !== flattenedOptions || $[61] !== highlightedIndex || $[62] !== isOpen || $[63] !== removeSelectedItem || $[64] !== reset || $[65] !== selectedItems) {
367
+ t24 = event => {
368
+ if (event.ctrlKey || event.metaKey) {
369
+ event.preventDownshiftDefault = true;
204
370
  return;
205
371
  }
206
372
 
207
- addSelectedItem(flattenedOptions[newHighlightedIndex]);
208
- } // backspace removing the last selected item (when popup is closed)
373
+ if (isOpen && event.shiftKey && (event.key === "ArrowUp" || event.key === "ArrowDown")) {
374
+ const newHighlightedIndex = event.key === "ArrowUp" ? Math.max(highlightedIndex - 1, 0) : Math.min(highlightedIndex + 1, flattenedOptions.length - 1);
209
375
 
376
+ if (newHighlightedIndex === highlightedIndex) {
377
+ return;
378
+ }
210
379
 
211
- if (!isOpen && event.key === 'Backspace') {
212
- removeSelectedItem(selectedItems[selectedItems.length - 1]);
213
- } // delete removing all selected items (when popup is closed)
380
+ addSelectedItem(flattenedOptions[newHighlightedIndex]);
381
+ }
214
382
 
383
+ if (!isOpen && event.key === "Backspace") {
384
+ removeSelectedItem(selectedItems[selectedItems.length - 1]);
385
+ }
215
386
 
216
- if (!isOpen && event.key === 'Delete') {
217
- reset();
218
- }
219
- },
220
- // fix screen-reader focus on an opened popup with an empty list
221
- ...(isOpen && isListBoxEmpty ? {
222
- 'aria-activedescendant': menuProps.id
223
- } : {})
224
- });
387
+ if (!isOpen && event.key === "Delete") {
388
+ reset();
389
+ }
390
+ };
391
+
392
+ $[59] = addSelectedItem;
393
+ $[60] = flattenedOptions;
394
+ $[61] = highlightedIndex;
395
+ $[62] = isOpen;
396
+ $[63] = removeSelectedItem;
397
+ $[64] = reset;
398
+ $[65] = selectedItems;
399
+ $[66] = t24;
400
+ } else {
401
+ t24 = $[66];
402
+ }
403
+
404
+ t23 = getToggleButtonProps({
405
+ ref: setTriggerEl,
406
+ onKeyDown: t24,
407
+ ...(isOpen && isListBoxEmpty ? {
408
+ "aria-activedescendant": menuProps.id
409
+ } : {})
410
+ });
411
+ $[46] = addSelectedItem;
412
+ $[47] = flattenedOptions;
413
+ $[48] = getMenuProps;
414
+ $[49] = getToggleButtonProps;
415
+ $[50] = highlightedIndex;
416
+ $[51] = isListBoxEmpty;
417
+ $[52] = isOpen;
418
+ $[53] = removeSelectedItem;
419
+ $[54] = reset;
420
+ $[55] = selectedItems;
421
+ $[56] = t22;
422
+ $[57] = menuProps;
423
+ $[58] = t23;
424
+ } else {
425
+ menuProps = $[57];
426
+ t23 = $[58];
427
+ }
428
+
429
+ const triggerProps = t23;
225
430
  const {
226
431
  isFocusedByLabel,
227
432
  labelClickProps,
228
433
  triggerFocusProps: labelFocusForTriggerProps
229
434
  } = useLabelFocus();
230
- const emptyListMessage = getEmptyMessage({
231
- isLoading,
232
- isNothingFound: false,
233
- noOptionsMessage
234
- });
235
- const listBoxState = {
236
- selectedMap,
237
- highlightedIndex,
238
- getItemProps,
239
- menuProps,
240
- isMulti: true
241
- };
242
- return /*#__PURE__*/React.createElement("div", {
243
- className: cn(className, styles.root, THEME_STYLES[theme], SIZE_STYLES[size], MODE_STYLES[mode], isDisabled ? styles.disabled : styles.enabled, Boolean(error) && styles.error),
244
- id: id,
245
- style: style,
246
- "data-test": "multiselect"
247
- }, /*#__PURE__*/React.createElement(FormTriggerWrapper, {
248
- theme: theme,
249
- size: size,
250
- disabled: isDisabled,
251
- label: label,
252
- labelProps: mergeProps(getLabelProps(), labelClickProps),
253
- boldLabel: boldLabel,
254
- error: error,
255
- reserveErrorLine: reserveErrorLine,
256
- errorMessageProps: errorMessageProps,
257
- note: note,
258
- descriptionProps: descriptionProps
259
- }, /*#__PURE__*/React.createElement(HiddenSelect, {
260
- name: name,
261
- value: selectedItems,
262
- isMultiple: true,
263
- options: flattenedOptions
264
- }), /*#__PURE__*/React.createElement(PopupContent, {
265
- theme: theme,
266
- size: size,
267
- mode: mode,
268
- dropdownRef: dropdownRef,
269
- triggerRef: triggerRef,
270
- placement: placement,
271
- renderInTrigger: renderInTrigger,
272
- disableFlip: disableFlip,
273
- isOpen: isOpen,
274
- listBoxState: listBoxState,
275
- maxVisibleItems: maxVisibleItems,
276
- emptyListMessage: emptyListMessage,
277
- listBoxItems: listBoxItems,
278
- dropdownUpdateDeps: [selectedItems],
279
- trigger: _ref3 => {
280
- let {
435
+ let t24;
436
+
437
+ if ($[67] !== isLoading || $[68] !== noOptionsMessage) {
438
+ t24 = getEmptyMessage({
439
+ isLoading,
440
+ isNothingFound: false,
441
+ noOptionsMessage
442
+ });
443
+ $[67] = isLoading;
444
+ $[68] = noOptionsMessage;
445
+ $[69] = t24;
446
+ } else {
447
+ t24 = $[69];
448
+ }
449
+
450
+ const emptyListMessage = t24;
451
+ let t25;
452
+
453
+ if ($[70] !== getItemProps || $[71] !== highlightedIndex || $[72] !== menuProps || $[73] !== selectedMap) {
454
+ t25 = {
455
+ selectedMap,
456
+ highlightedIndex,
457
+ getItemProps,
458
+ menuProps,
459
+ isMulti: true
460
+ };
461
+ $[70] = getItemProps;
462
+ $[71] = highlightedIndex;
463
+ $[72] = menuProps;
464
+ $[73] = selectedMap;
465
+ $[74] = t25;
466
+ } else {
467
+ t25 = $[74];
468
+ }
469
+
470
+ const listBoxState = t25;
471
+ const t26 = THEME_STYLES[theme];
472
+ const t27 = SIZE_STYLES[size];
473
+ const t28 = MODE_STYLES[mode];
474
+ const t29 = isDisabled ? styles.disabled : styles.enabled;
475
+ const t30 = Boolean(error) && styles.error;
476
+ let t31;
477
+
478
+ if ($[75] !== className || $[76] !== t26 || $[77] !== t27 || $[78] !== t28 || $[79] !== t29 || $[80] !== t30) {
479
+ t31 = cn(className, styles.root, t26, t27, t28, t29, t30);
480
+ $[75] = className;
481
+ $[76] = t26;
482
+ $[77] = t27;
483
+ $[78] = t28;
484
+ $[79] = t29;
485
+ $[80] = t30;
486
+ $[81] = t31;
487
+ } else {
488
+ t31 = $[81];
489
+ }
490
+
491
+ let t32;
492
+
493
+ if ($[82] !== getLabelProps || $[83] !== labelClickProps) {
494
+ t32 = mergeProps(getLabelProps(), labelClickProps);
495
+ $[82] = getLabelProps;
496
+ $[83] = labelClickProps;
497
+ $[84] = t32;
498
+ } else {
499
+ t32 = $[84];
500
+ }
501
+
502
+ let t33;
503
+
504
+ if ($[85] !== flattenedOptions || $[86] !== name || $[87] !== selectedItems) {
505
+ t33 = /*#__PURE__*/React.createElement(HiddenSelect, {
506
+ name: name,
507
+ value: selectedItems,
508
+ isMultiple: true,
509
+ options: flattenedOptions
510
+ });
511
+ $[85] = flattenedOptions;
512
+ $[86] = name;
513
+ $[87] = selectedItems;
514
+ $[88] = t33;
515
+ } else {
516
+ t33 = $[88];
517
+ }
518
+
519
+ let t34;
520
+
521
+ if ($[89] !== fieldProps || $[90] !== isClearable || $[91] !== isDisabled || $[92] !== isFocusedByLabel || $[93] !== isLoading || $[94] !== isOpen || $[95] !== isSingleLine || $[96] !== labelFocusForTriggerProps || $[97] !== placeholder || $[98] !== removeSelectedItem || $[99] !== reset || $[100] !== rest || $[101] !== selectedItems || $[102] !== triggerEl || $[103] !== triggerProps) {
522
+ t34 = t35 => {
523
+ const {
281
524
  ref: triggerRefForDropdown
282
- } = _ref3;
525
+ } = t35;
283
526
  return /*#__PURE__*/React.createElement("div", {
284
527
  className: styles.triggerContainer,
285
528
  "data-open": isOpen,
286
529
  "data-label-focused": isFocusedByLabel
287
- }, /*#__PURE__*/React.createElement("div", { ...rest,
288
- ...mergeProps(fieldProps, // aria-invalid & aria-describedby, rest are overridden by triggerProps
289
- triggerProps, labelFocusForTriggerProps, {
290
- ref: triggerRefForDropdown
291
- }),
530
+ }, /*#__PURE__*/React.createElement("div", _extends({}, rest, mergeProps(fieldProps, triggerProps, labelFocusForTriggerProps, {
531
+ ref: triggerRefForDropdown
532
+ }), {
292
533
  tabIndex: isDisabled ? undefined : 0,
293
534
  className: cn(styles.trigger, !isSingleLine && styles.canBeMultiline),
294
535
  "data-test": "multiselect__trigger"
295
- }, /*#__PURE__*/React.createElement(MultiTrigger, {
536
+ }), /*#__PURE__*/React.createElement(MultiTrigger, {
296
537
  selectedItems: selectedItems,
297
538
  valueProps: {},
298
539
  isSingleLine: isSingleLine,
299
540
  isDisabled: isDisabled,
300
541
  placeholder: placeholder,
301
- triggerRef: triggerRef,
542
+ triggerEl: triggerEl,
302
543
  removeSelectedItem: removeSelectedItem
303
544
  }), /*#__PURE__*/React.createElement(Icons, {
304
545
  isLoading: isLoading,
305
546
  canHaveClearIcon: isClearable && !isDisabled && selectedItems.length > 0,
306
547
  onClear: () => {
307
548
  reset();
308
- triggerRef.current?.focus({
549
+ triggerEl?.focus({
309
550
  focusVisible: false
310
551
  });
311
552
  },
312
553
  triggerId: triggerProps.id
313
554
  })));
314
- }
315
- })));
555
+ };
556
+
557
+ $[89] = fieldProps;
558
+ $[90] = isClearable;
559
+ $[91] = isDisabled;
560
+ $[92] = isFocusedByLabel;
561
+ $[93] = isLoading;
562
+ $[94] = isOpen;
563
+ $[95] = isSingleLine;
564
+ $[96] = labelFocusForTriggerProps;
565
+ $[97] = placeholder;
566
+ $[98] = removeSelectedItem;
567
+ $[99] = reset;
568
+ $[100] = rest;
569
+ $[101] = selectedItems;
570
+ $[102] = triggerEl;
571
+ $[103] = triggerProps;
572
+ $[104] = t34;
573
+ } else {
574
+ t34 = $[104];
575
+ }
576
+
577
+ let t35;
578
+
579
+ if ($[105] !== disableFlip || $[106] !== emptyListMessage || $[107] !== isOpen || $[108] !== listBoxItems || $[109] !== listBoxState || $[110] !== maxVisibleItems || $[111] !== mode || $[112] !== placement || $[113] !== renderInTrigger || $[114] !== selectedItems || $[115] !== size || $[116] !== t34 || $[117] !== theme || $[118] !== triggerEl) {
580
+ t35 = /*#__PURE__*/React.createElement(PopupContent, {
581
+ theme: theme,
582
+ size: size,
583
+ mode: mode,
584
+ dropdownRef: dropdownRef,
585
+ triggerEl: triggerEl,
586
+ placement: placement,
587
+ renderInTrigger: renderInTrigger,
588
+ disableFlip: disableFlip,
589
+ isOpen: isOpen,
590
+ listBoxState: listBoxState,
591
+ maxVisibleItems: maxVisibleItems,
592
+ emptyListMessage: emptyListMessage,
593
+ listBoxItems: listBoxItems,
594
+ dropdownUpdateDep: selectedItems,
595
+ trigger: t34
596
+ });
597
+ $[105] = disableFlip;
598
+ $[106] = emptyListMessage;
599
+ $[107] = isOpen;
600
+ $[108] = listBoxItems;
601
+ $[109] = listBoxState;
602
+ $[110] = maxVisibleItems;
603
+ $[111] = mode;
604
+ $[112] = placement;
605
+ $[113] = renderInTrigger;
606
+ $[114] = selectedItems;
607
+ $[115] = size;
608
+ $[116] = t34;
609
+ $[117] = theme;
610
+ $[118] = triggerEl;
611
+ $[119] = t35;
612
+ } else {
613
+ t35 = $[119];
614
+ }
615
+
616
+ let t36;
617
+
618
+ if ($[120] !== boldLabel || $[121] !== descriptionProps || $[122] !== error || $[123] !== errorMessageProps || $[124] !== isDisabled || $[125] !== label || $[126] !== note || $[127] !== reserveErrorLine || $[128] !== size || $[129] !== t32 || $[130] !== t33 || $[131] !== t35 || $[132] !== theme) {
619
+ t36 = /*#__PURE__*/React.createElement(FormTriggerWrapper, {
620
+ theme: theme,
621
+ size: size,
622
+ disabled: isDisabled,
623
+ label: label,
624
+ labelProps: t32,
625
+ boldLabel: boldLabel,
626
+ error: error,
627
+ reserveErrorLine: reserveErrorLine,
628
+ errorMessageProps: errorMessageProps,
629
+ note: note,
630
+ descriptionProps: descriptionProps
631
+ }, t33, t35);
632
+ $[120] = boldLabel;
633
+ $[121] = descriptionProps;
634
+ $[122] = error;
635
+ $[123] = errorMessageProps;
636
+ $[124] = isDisabled;
637
+ $[125] = label;
638
+ $[126] = note;
639
+ $[127] = reserveErrorLine;
640
+ $[128] = size;
641
+ $[129] = t32;
642
+ $[130] = t33;
643
+ $[131] = t35;
644
+ $[132] = theme;
645
+ $[133] = t36;
646
+ } else {
647
+ t36 = $[133];
648
+ }
649
+
650
+ let t37;
651
+
652
+ if ($[134] !== id || $[135] !== style || $[136] !== t31 || $[137] !== t36) {
653
+ t37 = /*#__PURE__*/React.createElement("div", {
654
+ className: t31,
655
+ id: id,
656
+ style: style,
657
+ "data-test": "multiselect"
658
+ }, t36);
659
+ $[134] = id;
660
+ $[135] = style;
661
+ $[136] = t31;
662
+ $[137] = t36;
663
+ $[138] = t37;
664
+ } else {
665
+ t37 = $[138];
666
+ }
667
+
668
+ return t37;
316
669
  }
317
670
 
318
671
  export { Multiselect };