@yamada-ui/autocomplete 1.5.4-next-20241005220055 → 1.6.0-dev-20241011151311

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. package/dist/autocomplete-context.d.mts +115 -115
  2. package/dist/autocomplete-context.d.ts +115 -115
  3. package/dist/autocomplete-context.js +2 -2
  4. package/dist/autocomplete-context.js.map +1 -1
  5. package/dist/autocomplete-context.mjs +1 -1
  6. package/dist/autocomplete-create.d.mts +4 -4
  7. package/dist/autocomplete-create.d.ts +4 -4
  8. package/dist/autocomplete-create.js +32 -32
  9. package/dist/autocomplete-create.js.map +1 -1
  10. package/dist/autocomplete-create.mjs +4 -4
  11. package/dist/autocomplete-empty.d.mts +4 -4
  12. package/dist/autocomplete-empty.d.ts +4 -4
  13. package/dist/autocomplete-empty.js +34 -34
  14. package/dist/autocomplete-empty.js.map +1 -1
  15. package/dist/autocomplete-empty.mjs +4 -4
  16. package/dist/autocomplete-icon.js +17 -17
  17. package/dist/autocomplete-icon.js.map +1 -1
  18. package/dist/autocomplete-icon.mjs +2 -2
  19. package/dist/autocomplete-list.d.mts +2 -2
  20. package/dist/autocomplete-list.d.ts +2 -2
  21. package/dist/autocomplete-list.js +18 -18
  22. package/dist/autocomplete-list.js.map +1 -1
  23. package/dist/autocomplete-list.mjs +3 -3
  24. package/dist/autocomplete-option-group.js +10 -10
  25. package/dist/autocomplete-option-group.js.map +1 -1
  26. package/dist/autocomplete-option-group.mjs +3 -3
  27. package/dist/autocomplete-option.d.mts +1 -1
  28. package/dist/autocomplete-option.d.ts +1 -1
  29. package/dist/autocomplete-option.js +56 -47
  30. package/dist/autocomplete-option.js.map +1 -1
  31. package/dist/autocomplete-option.mjs +4 -4
  32. package/dist/autocomplete.d.mts +31 -31
  33. package/dist/autocomplete.d.ts +31 -31
  34. package/dist/autocomplete.js +303 -292
  35. package/dist/autocomplete.js.map +1 -1
  36. package/dist/autocomplete.mjs +12 -12
  37. package/dist/{chunk-5GKGL6BL.mjs → chunk-2HJUFFCU.mjs} +16 -16
  38. package/dist/chunk-2HJUFFCU.mjs.map +1 -0
  39. package/dist/{chunk-6F3LT7J6.mjs → chunk-4SBNPEK7.mjs} +7 -7
  40. package/dist/{chunk-6F3LT7J6.mjs.map → chunk-4SBNPEK7.mjs.map} +1 -1
  41. package/dist/{chunk-JMX72TSD.mjs → chunk-67X7JKWL.mjs} +7 -7
  42. package/dist/{chunk-JMX72TSD.mjs.map → chunk-67X7JKWL.mjs.map} +1 -1
  43. package/dist/{chunk-5LPWFWE6.mjs → chunk-6OLHNK7O.mjs} +46 -34
  44. package/dist/chunk-6OLHNK7O.mjs.map +1 -0
  45. package/dist/{chunk-QPIWG4ZF.mjs → chunk-7LZUXESV.mjs} +63 -61
  46. package/dist/chunk-7LZUXESV.mjs.map +1 -0
  47. package/dist/{chunk-S2HFYJVI.mjs → chunk-AIBJWPRA.mjs} +13 -13
  48. package/dist/chunk-AIBJWPRA.mjs.map +1 -0
  49. package/dist/{chunk-Q2HZVVOI.mjs → chunk-K5HCHHCJ.mjs} +16 -16
  50. package/dist/chunk-K5HCHHCJ.mjs.map +1 -0
  51. package/dist/{chunk-HZECQUHV.mjs → chunk-Q33EMTO2.mjs} +40 -40
  52. package/dist/{chunk-HZECQUHV.mjs.map → chunk-Q33EMTO2.mjs.map} +1 -1
  53. package/dist/{chunk-R76HPAN4.mjs → chunk-TR4X4EEG.mjs} +7 -7
  54. package/dist/{chunk-R76HPAN4.mjs.map → chunk-TR4X4EEG.mjs.map} +1 -1
  55. package/dist/{chunk-7SWSKLSA.mjs → chunk-V6YCG642.mjs} +18 -18
  56. package/dist/chunk-V6YCG642.mjs.map +1 -0
  57. package/dist/{chunk-S53LMDD7.mjs → chunk-VTBUO5SK.mjs} +15 -15
  58. package/dist/chunk-VTBUO5SK.mjs.map +1 -0
  59. package/dist/{chunk-JPUKYLBW.mjs → chunk-WDQYM4FP.mjs} +5 -5
  60. package/dist/chunk-WDQYM4FP.mjs.map +1 -0
  61. package/dist/{chunk-OLOU5HFC.mjs → chunk-WERCEZNJ.mjs} +168 -166
  62. package/dist/chunk-WERCEZNJ.mjs.map +1 -0
  63. package/dist/index.d.mts +4 -4
  64. package/dist/index.d.ts +4 -4
  65. package/dist/index.js +356 -343
  66. package/dist/index.js.map +1 -1
  67. package/dist/index.mjs +13 -13
  68. package/dist/multi-autocomplete.d.mts +51 -51
  69. package/dist/multi-autocomplete.d.ts +51 -51
  70. package/dist/multi-autocomplete.js +326 -313
  71. package/dist/multi-autocomplete.js.map +1 -1
  72. package/dist/multi-autocomplete.mjs +12 -12
  73. package/dist/use-autocomplete-list.d.mts +1 -1
  74. package/dist/use-autocomplete-list.d.ts +1 -1
  75. package/dist/use-autocomplete-list.js +7 -7
  76. package/dist/use-autocomplete-list.js.map +1 -1
  77. package/dist/use-autocomplete-list.mjs +2 -2
  78. package/dist/use-autocomplete-option-group.js +7 -7
  79. package/dist/use-autocomplete-option-group.js.map +1 -1
  80. package/dist/use-autocomplete-option-group.mjs +2 -2
  81. package/dist/use-autocomplete-option.d.mts +12 -12
  82. package/dist/use-autocomplete-option.d.ts +12 -12
  83. package/dist/use-autocomplete-option.js +43 -34
  84. package/dist/use-autocomplete-option.js.map +1 -1
  85. package/dist/use-autocomplete-option.mjs +2 -2
  86. package/dist/use-autocomplete.d.mts +86 -86
  87. package/dist/use-autocomplete.d.ts +86 -86
  88. package/dist/use-autocomplete.js +225 -214
  89. package/dist/use-autocomplete.js.map +1 -1
  90. package/dist/use-autocomplete.mjs +7 -7
  91. package/package.json +13 -13
  92. package/dist/chunk-5GKGL6BL.mjs.map +0 -1
  93. package/dist/chunk-5LPWFWE6.mjs.map +0 -1
  94. package/dist/chunk-7SWSKLSA.mjs.map +0 -1
  95. package/dist/chunk-JPUKYLBW.mjs.map +0 -1
  96. package/dist/chunk-OLOU5HFC.mjs.map +0 -1
  97. package/dist/chunk-Q2HZVVOI.mjs.map +0 -1
  98. package/dist/chunk-QPIWG4ZF.mjs.map +0 -1
  99. package/dist/chunk-S2HFYJVI.mjs.map +0 -1
  100. package/dist/chunk-S53LMDD7.mjs.map +0 -1
@@ -1,15 +1,15 @@
1
1
  "use client"
2
2
  import {
3
3
  AutocompleteOptionGroup
4
- } from "./chunk-6F3LT7J6.mjs";
4
+ } from "./chunk-4SBNPEK7.mjs";
5
5
  import {
6
6
  AutocompleteOption
7
- } from "./chunk-S2HFYJVI.mjs";
7
+ } from "./chunk-AIBJWPRA.mjs";
8
8
  import {
9
9
  useAutocompleteContext,
10
10
  useAutocompleteDescendants,
11
11
  useAutocompleteDescendantsContext
12
- } from "./chunk-JPUKYLBW.mjs";
12
+ } from "./chunk-WDQYM4FP.mjs";
13
13
 
14
14
  // src/use-autocomplete.tsx
15
15
  import { layoutStyleProperties } from "@yamada-ui/core";
@@ -24,78 +24,93 @@ import {
24
24
  dataAttr,
25
25
  funcAll,
26
26
  getEventRelatedTarget,
27
+ getValidChildren,
27
28
  handlerAll,
28
29
  isArray,
29
30
  isContains,
31
+ isUndefined,
30
32
  mergeRefs,
31
33
  pickObject,
32
34
  splitObject,
33
35
  useUnmountEffect,
34
- useUpdateEffect,
35
- getValidChildren,
36
- isUndefined
36
+ useUpdateEffect
37
37
  } from "@yamada-ui/utils";
38
38
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
39
39
  import { jsx } from "react/jsx-runtime";
40
40
  var kanaMap = {
41
- \uFF76\uFF9E: "\u30AC",
42
- \uFF77\uFF9E: "\u30AE",
43
- \uFF78\uFF9E: "\u30B0",
44
- \uFF79\uFF9E: "\u30B2",
45
- \uFF7A\uFF9E: "\u30B4",
46
- \uFF7B\uFF9E: "\u30B6",
47
- \uFF7C\uFF9E: "\u30B8",
48
- \uFF7D\uFF9E: "\u30BA",
49
- \uFF7E\uFF9E: "\u30BC",
50
- \uFF7F\uFF9E: "\u30BE",
51
- \uFF80\uFF9E: "\u30C0",
52
- \uFF81\uFF9E: "\u30C2",
53
- \uFF82\uFF9E: "\u30C5",
54
- \uFF83\uFF9E: "\u30C7",
55
- \uFF84\uFF9E: "\u30C9",
56
- \uFF8A\uFF9E: "\u30D0",
57
- \uFF8B\uFF9E: "\u30D3",
58
- \uFF8C\uFF9E: "\u30D6",
59
- \uFF8D\uFF9E: "\u30D9",
60
- \uFF8E\uFF9E: "\u30DC",
61
- \uFF8A\uFF9F: "\u30D1",
62
- \uFF8B\uFF9F: "\u30D4",
63
- \uFF8C\uFF9F: "\u30D7",
64
- \uFF8D\uFF9F: "\u30DA",
65
- \uFF8E\uFF9F: "\u30DD",
66
- \uFF73\uFF9E: "\u30F4",
67
- \uFF9C\uFF9E: "\u30F7",
41
+ "\uFF61": "\u3002",
42
+ "\uFF62": "\u300C",
43
+ "\uFF63": "\u300D",
44
+ "\uFF64": "\u3001",
45
+ "\uFF65": "\u30FB",
46
+ \uFF66: "\u30F2",
68
47
  \uFF66\uFF9E: "\u30FA",
48
+ \uFF67: "\u30A1",
49
+ \uFF68: "\u30A3",
50
+ \uFF69: "\u30A5",
51
+ \uFF6A: "\u30A7",
52
+ \uFF6B: "\u30A9",
53
+ \uFF6C: "\u30E3",
54
+ \uFF6D: "\u30E5",
55
+ \uFF6E: "\u30E7",
56
+ \uFF6F: "\u30C3",
57
+ \uFF70: "\u30FC",
69
58
  \uFF71: "\u30A2",
70
59
  \uFF72: "\u30A4",
71
60
  \uFF73: "\u30A6",
61
+ \uFF73\uFF9E: "\u30F4",
72
62
  \uFF74: "\u30A8",
73
63
  \uFF75: "\u30AA",
74
64
  \uFF76: "\u30AB",
65
+ \uFF76\uFF9E: "\u30AC",
75
66
  \uFF77: "\u30AD",
67
+ \uFF77\uFF9E: "\u30AE",
76
68
  \uFF78: "\u30AF",
69
+ \uFF78\uFF9E: "\u30B0",
77
70
  \uFF79: "\u30B1",
71
+ \uFF79\uFF9E: "\u30B2",
78
72
  \uFF7A: "\u30B3",
73
+ \uFF7A\uFF9E: "\u30B4",
79
74
  \uFF7B: "\u30B5",
75
+ \uFF7B\uFF9E: "\u30B6",
80
76
  \uFF7C: "\u30B7",
77
+ \uFF7C\uFF9E: "\u30B8",
81
78
  \uFF7D: "\u30B9",
79
+ \uFF7D\uFF9E: "\u30BA",
82
80
  \uFF7E: "\u30BB",
81
+ \uFF7E\uFF9E: "\u30BC",
83
82
  \uFF7F: "\u30BD",
83
+ \uFF7F\uFF9E: "\u30BE",
84
84
  \uFF80: "\u30BF",
85
+ \uFF80\uFF9E: "\u30C0",
85
86
  \uFF81: "\u30C1",
87
+ \uFF81\uFF9E: "\u30C2",
86
88
  \uFF82: "\u30C4",
89
+ \uFF82\uFF9E: "\u30C5",
87
90
  \uFF83: "\u30C6",
91
+ \uFF83\uFF9E: "\u30C7",
88
92
  \uFF84: "\u30C8",
93
+ \uFF84\uFF9E: "\u30C9",
89
94
  \uFF85: "\u30CA",
90
95
  \uFF86: "\u30CB",
91
96
  \uFF87: "\u30CC",
92
97
  \uFF88: "\u30CD",
93
98
  \uFF89: "\u30CE",
94
99
  \uFF8A: "\u30CF",
100
+ \uFF8A\uFF9E: "\u30D0",
101
+ \uFF8A\uFF9F: "\u30D1",
95
102
  \uFF8B: "\u30D2",
103
+ \uFF8B\uFF9E: "\u30D3",
104
+ \uFF8B\uFF9F: "\u30D4",
96
105
  \uFF8C: "\u30D5",
106
+ \uFF8C\uFF9E: "\u30D6",
107
+ \uFF8C\uFF9F: "\u30D7",
97
108
  \uFF8D: "\u30D8",
109
+ \uFF8D\uFF9E: "\u30D9",
110
+ \uFF8D\uFF9F: "\u30DA",
98
111
  \uFF8E: "\u30DB",
112
+ \uFF8E\uFF9E: "\u30DC",
113
+ \uFF8E\uFF9F: "\u30DD",
99
114
  \uFF8F: "\u30DE",
100
115
  \uFF90: "\u30DF",
101
116
  \uFF91: "\u30E0",
@@ -110,23 +125,8 @@ var kanaMap = {
110
125
  \uFF9A: "\u30EC",
111
126
  \uFF9B: "\u30ED",
112
127
  \uFF9C: "\u30EF",
113
- \uFF66: "\u30F2",
114
- \uFF9D: "\u30F3",
115
- \uFF67: "\u30A1",
116
- \uFF68: "\u30A3",
117
- \uFF69: "\u30A5",
118
- \uFF6A: "\u30A7",
119
- \uFF6B: "\u30A9",
120
- \uFF6F: "\u30C3",
121
- \uFF6C: "\u30E3",
122
- \uFF6D: "\u30E5",
123
- \uFF6E: "\u30E7",
124
- "\uFF61": "\u3002",
125
- "\uFF64": "\u3001",
126
- \uFF70: "\u30FC",
127
- "\uFF62": "\u300C",
128
- "\uFF63": "\u300D",
129
- "\uFF65": "\u30FB"
128
+ \uFF9C\uFF9E: "\u30F7",
129
+ \uFF9D: "\u30F3"
130
130
  };
131
131
  var defaultFormat = (value) => {
132
132
  value = value.replace(
@@ -154,46 +154,46 @@ var flattenItems = (items) => {
154
154
  };
155
155
  var useAutocomplete = (props) => {
156
156
  const {
157
- value: valueProp,
158
- defaultValue,
159
- onChange: onChangeProp,
160
- onCreate: onCreateProp,
161
- onSearch: onSearchProp,
162
- closeOnSelect = true,
163
- omitSelectedValues = false,
164
- maxSelectValues,
165
157
  allowCreate = false,
166
158
  allowFree = false,
167
- insertPositionItem = "first",
168
- emptyMessage = "No results found",
169
- format = defaultFormat,
170
- optionProps,
171
- placeholder,
172
- onKeyDown: onKeyDownProp,
173
- isOpen: isOpenProp,
174
- defaultIsOpen,
175
- onOpen: onOpenProp,
176
- onClose: onCloseProp,
159
+ animation,
160
+ boundary,
161
+ children,
162
+ closeDelay,
177
163
  closeOnBlur = true,
178
164
  closeOnEsc = true,
179
- openDelay,
180
- closeDelay,
165
+ closeOnSelect = true,
166
+ defaultIsOpen,
167
+ defaultValue,
168
+ duration = 0.2,
169
+ emptyMessage = "No results found",
170
+ eventListeners,
171
+ flip,
172
+ format = defaultFormat,
173
+ gutter,
174
+ insertPositionItem = "first",
181
175
  isLazy,
176
+ isOpen: isOpenProp,
177
+ items,
182
178
  lazyBehavior,
183
- animation,
184
- duration = 0.2,
179
+ matchWidth = true,
180
+ maxSelectValues,
181
+ modifiers,
185
182
  offset,
186
- gutter,
183
+ omitSelectedValues = false,
184
+ openDelay,
185
+ placeholder,
186
+ placement = "bottom-start",
187
187
  preventOverflow,
188
- flip,
189
- matchWidth = true,
190
- boundary,
191
- eventListeners,
192
188
  strategy,
193
- placement = "bottom-start",
194
- modifiers,
195
- items,
196
- children,
189
+ value: valueProp,
190
+ optionProps,
191
+ onChange: onChangeProp,
192
+ onClose: onCloseProp,
193
+ onCreate: onCreateProp,
194
+ onKeyDown: onKeyDownProp,
195
+ onOpen: onOpenProp,
196
+ onSearch: onSearchProp,
197
197
  ...rest
198
198
  } = useFormControlProps(props);
199
199
  const {
@@ -212,8 +212,8 @@ var useAutocomplete = (props) => {
212
212
  const prevValue = useRef(void 0);
213
213
  const [resolvedItems, setResolvedItems] = useState(items ? JSON.parse(JSON.stringify(items)) : void 0);
214
214
  const [value, setValue] = useControllableState({
215
- value: valueProp,
216
215
  defaultValue,
216
+ value: valueProp,
217
217
  onChange: onChangeProp
218
218
  });
219
219
  const [label, setLabel] = useState(void 0);
@@ -223,13 +223,13 @@ var useAutocomplete = (props) => {
223
223
  const [isHit, setIsHit] = useState(true);
224
224
  const {
225
225
  isOpen,
226
- onOpen: onInternalOpen,
227
- onClose
226
+ onClose,
227
+ onOpen: onInternalOpen
228
228
  } = useDisclosure({
229
- isOpen: isOpenProp,
230
229
  defaultIsOpen,
231
- onOpen: onOpenProp,
232
- onClose: onCloseProp
230
+ isOpen: isOpenProp,
231
+ onClose: onCloseProp,
232
+ onOpen: onOpenProp
233
233
  });
234
234
  const isFocused = focusedIndex > -1;
235
235
  const isCreate = focusedIndex === -2 && allowCreate;
@@ -255,7 +255,7 @@ var useAutocomplete = (props) => {
255
255
  );
256
256
  const selectedIndexes = selectedValues.map(({ index }) => index);
257
257
  const enabledValues = descendants.enabledValues(
258
- ({ node, index }) => "target" in node.dataset && !selectedIndexes.includes(index)
258
+ ({ index, node }) => "target" in node.dataset && !selectedIndexes.includes(index)
259
259
  );
260
260
  const validChildren = getValidChildren(children);
261
261
  const computedChildren = useMemo(
@@ -264,7 +264,7 @@ var useAutocomplete = (props) => {
264
264
  const { label: label2, value: value2, ...props2 } = item;
265
265
  return /* @__PURE__ */ jsx(AutocompleteOption, { value: value2, ...props2, children: label2 }, i);
266
266
  } else if ("items" in item) {
267
- const { label: label2, items: items2 = [], ...props2 } = item;
267
+ const { items: items2 = [], label: label2, ...props2 } = item;
268
268
  return /* @__PURE__ */ jsx(AutocompleteOptionGroup, { label: label2, ...props2, children: items2.map(({ label: label3, value: value2, ...props3 }, i2) => /* @__PURE__ */ jsx(AutocompleteOption, { value: value2, ...props3, children: label3 }, i2)) }, i);
269
269
  }
270
270
  }),
@@ -279,6 +279,7 @@ var useAutocomplete = (props) => {
279
279
  }, [allowCreate, formControlProps, isAllSelected, isEmpty, onInternalOpen]);
280
280
  const onFocusFirst = useCallback(() => {
281
281
  const id2 = setTimeout(() => {
282
+ var _a;
282
283
  if (isEmpty || isAllSelected) return;
283
284
  const first = descendants.enabledFirstValue(
284
285
  ({ node }) => "target" in node.dataset
@@ -289,7 +290,7 @@ var useAutocomplete = (props) => {
289
290
  } else {
290
291
  if (selectedIndexes.includes(first.index)) {
291
292
  const enabledFirst = enabledValues[0];
292
- setFocusedIndex(enabledFirst.index);
293
+ setFocusedIndex((_a = enabledFirst == null ? void 0 : enabledFirst.index) != null ? _a : -1);
293
294
  } else {
294
295
  setFocusedIndex(first.index);
295
296
  }
@@ -307,6 +308,7 @@ var useAutocomplete = (props) => {
307
308
  ]);
308
309
  const onFocusLast = useCallback(() => {
309
310
  const id2 = setTimeout(() => {
311
+ var _a;
310
312
  if (isEmpty || isAllSelected) return;
311
313
  const last = descendants.enabledLastValue(
312
314
  ({ node }) => "target" in node.dataset
@@ -317,7 +319,7 @@ var useAutocomplete = (props) => {
317
319
  } else {
318
320
  if (selectedIndexes.includes(last.index)) {
319
321
  const enabledLast = enabledValues.reverse()[0];
320
- setFocusedIndex(enabledLast.index);
322
+ setFocusedIndex((_a = enabledLast == null ? void 0 : enabledLast.index) != null ? _a : -1);
321
323
  } else {
322
324
  setFocusedIndex(last.index);
323
325
  }
@@ -349,7 +351,7 @@ var useAutocomplete = (props) => {
349
351
  const onFocusNext = useCallback(
350
352
  (index = focusedIndex) => {
351
353
  const id2 = setTimeout(() => {
352
- var _a;
354
+ var _a, _b;
353
355
  const next = descendants.enabledNextValue(
354
356
  index,
355
357
  ({ node }) => "target" in node.dataset
@@ -360,7 +362,7 @@ var useAutocomplete = (props) => {
360
362
  } else {
361
363
  if (selectedIndexes.includes(next.index)) {
362
364
  const enabledNext = (_a = enabledValues.find(({ index: index2 }) => next.index < index2)) != null ? _a : enabledValues[0];
363
- setFocusedIndex(enabledNext.index);
365
+ setFocusedIndex((_b = enabledNext == null ? void 0 : enabledNext.index) != null ? _b : -1);
364
366
  } else {
365
367
  setFocusedIndex(next.index);
366
368
  }
@@ -380,7 +382,7 @@ var useAutocomplete = (props) => {
380
382
  const onFocusPrev = useCallback(
381
383
  (index = focusedIndex) => {
382
384
  const id2 = setTimeout(() => {
383
- var _a;
385
+ var _a, _b;
384
386
  const prev = descendants.enabledPrevValue(
385
387
  index,
386
388
  ({ node }) => "target" in node.dataset
@@ -391,7 +393,7 @@ var useAutocomplete = (props) => {
391
393
  } else {
392
394
  if (selectedIndexes.includes(prev.index)) {
393
395
  const enabledPrev = (_a = enabledValues.reverse().find(({ index: index2 }) => index2 < prev.index)) != null ? _a : enabledValues[0];
394
- setFocusedIndex(enabledPrev.index);
396
+ setFocusedIndex((_b = enabledPrev == null ? void 0 : enabledPrev.index) != null ? _b : -1);
395
397
  } else {
396
398
  setFocusedIndex(prev.index);
397
399
  }
@@ -415,7 +417,7 @@ var useAutocomplete = (props) => {
415
417
  const values = descendants.values();
416
418
  let isHit2 = false;
417
419
  let isFocused2 = false;
418
- values.forEach(({ node, index }) => {
420
+ values.forEach(({ index, node }) => {
419
421
  var _a;
420
422
  if (format((_a = node.textContent) != null ? _a : "").includes(value2)) {
421
423
  isHit2 = true;
@@ -473,7 +475,7 @@ var useAutocomplete = (props) => {
473
475
  return selectedValues2[0];
474
476
  } else {
475
477
  selectedValues2.forEach((selectedValue) => {
476
- const isSelected = isArray(prev) && prev.includes(selectedValue != null ? selectedValue : "");
478
+ const isSelected = isArray(prev) && prev.includes(selectedValue);
477
479
  if (!isSelected) {
478
480
  prev = [...isArray(prev) ? prev : [], selectedValue];
479
481
  } else if (runOmit) {
@@ -578,7 +580,7 @@ var useAutocomplete = (props) => {
578
580
  ({ label: label2 }) => label2 === firstInsertPositionItem
579
581
  );
580
582
  const targetItem = newItems[i];
581
- if (i !== -1 && "items" in targetItem) {
583
+ if (i !== -1 && targetItem && "items" in targetItem) {
582
584
  if (secondInsertPositionItem === "first") {
583
585
  targetItem.items = [newItem, ...(_a = targetItem.items) != null ? _a : []];
584
586
  } else {
@@ -662,15 +664,15 @@ var useAutocomplete = (props) => {
662
664
  const actions = {
663
665
  ArrowDown: isFocused ? () => onFocusNext() : !isOpen ? funcAll(onOpen, onFocusFirstOrSelected) : void 0,
664
666
  ArrowUp: isFocused ? () => onFocusPrev() : !isOpen ? funcAll(onOpen, onFocusLastOrSelected) : void 0,
665
- Space: isCreate ? onCreate : isFocused ? onSelect : !isOpen ? funcAll(onOpen, onFocusFirstOrSelected) : void 0,
667
+ Backspace: !isEmptyValue && enabledDelete ? onDelete : void 0,
668
+ End: isOpen ? onFocusLast : void 0,
666
669
  Enter: isCreate ? onCreate : isFocused ? onSelect : !isOpen ? funcAll(onOpen, onFocusFirstOrSelected) : allowFree && isMulti ? () => {
667
670
  if (inputValue) onChange(inputValue);
668
671
  setFocusedIndex(0);
669
672
  } : void 0,
670
- Home: isOpen ? onFocusFirst : void 0,
671
- End: isOpen ? onFocusLast : void 0,
672
673
  Escape: closeOnEsc ? onClose : void 0,
673
- Backspace: !isEmptyValue && enabledDelete ? onDelete : void 0
674
+ Home: isOpen ? onFocusFirst : void 0,
675
+ Space: isCreate ? onCreate : isFocused ? onSelect : !isOpen ? funcAll(onOpen, onFocusFirstOrSelected) : void 0
674
676
  };
675
677
  const action = actions[ev.key];
676
678
  if (!action) return;
@@ -725,7 +727,7 @@ var useAutocomplete = (props) => {
725
727
  useEffect(() => {
726
728
  var _a;
727
729
  if (isMulti) {
728
- if (JSON.stringify((_a = prevValue.current) != null ? _a : []) === JSON.stringify(value != null ? value : []))
730
+ if (JSON.stringify((_a = prevValue.current) != null ? _a : []) === JSON.stringify(value))
729
731
  return;
730
732
  const label2 = getSelectedValues(value);
731
733
  setLabel(label2);
@@ -751,34 +753,34 @@ var useAutocomplete = (props) => {
751
753
  });
752
754
  useOutsideClick({
753
755
  ref: containerRef,
754
- handler: onClose,
755
- enabled: isOpen && (closeOnBlur || !isHit)
756
+ enabled: isOpen && (closeOnBlur || !isHit),
757
+ handler: onClose
756
758
  });
757
759
  const getPopoverProps = useCallback(
758
760
  (props2) => ({
759
- closeOnBlur,
760
- openDelay,
761
+ animation,
762
+ boundary,
761
763
  closeDelay,
764
+ closeOnBlur,
765
+ duration,
766
+ eventListeners,
767
+ flip,
768
+ gutter,
762
769
  isLazy,
763
770
  lazyBehavior,
764
- animation,
765
- duration,
771
+ matchWidth,
772
+ modifiers,
766
773
  offset,
767
- gutter,
774
+ openDelay,
775
+ placement,
768
776
  preventOverflow,
769
- flip,
770
- matchWidth,
771
- boundary,
772
- eventListeners,
773
777
  strategy,
774
- placement,
775
- modifiers,
776
778
  ...props2,
777
- trigger: "never",
778
779
  closeOnButton: false,
779
780
  isOpen,
780
- onOpen,
781
- onClose
781
+ trigger: "never",
782
+ onClose,
783
+ onOpen
782
784
  }),
783
785
  [
784
786
  closeOnBlur,
@@ -809,8 +811,8 @@ var useAutocomplete = (props) => {
809
811
  ...containerProps,
810
812
  ...props2,
811
813
  ...formControlProps,
812
- onClick: handlerAll(props2.onClick, rest.onClick, onClick),
813
- onBlur: handlerAll(props2.onBlur, rest.onBlur, onBlur)
814
+ onBlur: handlerAll(props2.onBlur, rest.onBlur, onBlur),
815
+ onClick: handlerAll(props2.onClick, rest.onClick, onClick)
814
816
  }),
815
817
  [containerProps, formControlProps, onBlur, onClick, rest]
816
818
  );
@@ -820,9 +822,9 @@ var useAutocomplete = (props) => {
820
822
  tabIndex: -1,
821
823
  ...props2,
822
824
  ...formControlProps,
823
- placeholder,
824
- "data-active": dataAttr(isOpen),
825
825
  "aria-expanded": dataAttr(isOpen),
826
+ "data-active": dataAttr(isOpen),
827
+ placeholder,
826
828
  onFocus: handlerAll(props2.onFocus, onFocusProp, onFocus),
827
829
  onKeyDown: handlerAll(props2.onKeyDown, onKeyDownProp, onKeyDown)
828
830
  }),
@@ -838,61 +840,61 @@ var useAutocomplete = (props) => {
838
840
  );
839
841
  return {
840
842
  id,
841
- descendants,
842
- value,
843
- label,
844
- inputValue,
845
- isHit,
846
- isEmpty,
847
- computedChildren,
848
- focusedIndex,
849
- omitSelectedValues,
850
- closeOnSelect,
851
843
  allowCreate,
852
844
  allowFree,
845
+ closeOnSelect,
846
+ computedChildren,
847
+ descendants,
853
848
  emptyMessage,
854
- isOpen,
849
+ focusedIndex,
850
+ inputRef,
851
+ inputValue,
855
852
  isAllSelected,
853
+ isEmpty,
854
+ isHit,
855
+ isOpen,
856
+ label,
856
857
  listRef,
857
- inputRef,
858
- optionProps,
859
- formControlProps,
858
+ omitSelectedValues,
859
+ pickOptions,
860
+ rebirthOptions,
860
861
  setFocusedIndex,
861
- onChangeLabel,
862
+ value,
863
+ formControlProps,
864
+ getContainerProps,
865
+ getFieldProps,
866
+ getPopoverProps,
867
+ inputProps,
868
+ optionProps,
862
869
  onChange,
863
- onSearch,
864
- onCreate,
870
+ onChangeLabel,
865
871
  onClear,
866
- onCompositionStart,
867
- onCompositionEnd,
868
- pickOptions,
869
- rebirthOptions,
870
- onOpen,
871
872
  onClose,
873
+ onCompositionEnd,
874
+ onCompositionStart,
875
+ onCreate,
872
876
  onFocusFirst,
873
877
  onFocusLast,
874
- onFocusSelected,
875
878
  onFocusNext,
876
879
  onFocusPrev,
877
- getPopoverProps,
878
- getContainerProps,
879
- getFieldProps,
880
- inputProps
880
+ onFocusSelected,
881
+ onOpen,
882
+ onSearch
881
883
  };
882
884
  };
883
885
  var useAutocompleteInput = () => {
884
886
  const {
885
887
  id,
888
+ focusedIndex,
886
889
  inputRef,
887
- onSearch,
888
- onCompositionStart,
889
- onCompositionEnd,
890
890
  isAllSelected,
891
+ isOpen,
892
+ listRef,
891
893
  formControlProps,
892
894
  inputProps,
893
- isOpen,
894
- focusedIndex,
895
- listRef
895
+ onCompositionEnd,
896
+ onCompositionStart,
897
+ onSearch
896
898
  } = useAutocompleteContext();
897
899
  const { value } = useAutocompleteDescendantsContext();
898
900
  useUpdateEffect(() => {
@@ -904,14 +906,14 @@ var useAutocompleteInput = () => {
904
906
  return {
905
907
  ref: mergeRefs(inputRef, ref),
906
908
  ...formControlProps,
907
- role: "combobox",
908
- "aria-haspopup": "listbox",
909
- "aria-autocomplete": "list",
910
- "aria-expanded": isOpen,
911
909
  "aria-activedescendant": (_a = value(focusedIndex)) == null ? void 0 : _a.node.id,
910
+ "aria-autocomplete": "list",
912
911
  "aria-controls": (_b = listRef.current) == null ? void 0 : _b.id,
912
+ "aria-expanded": isOpen,
913
+ "aria-haspopup": "listbox",
913
914
  autoCapitalize: "none",
914
915
  autoComplete: "off",
916
+ role: "combobox",
915
917
  spellCheck: "false",
916
918
  ...inputProps,
917
919
  ...props,
@@ -920,15 +922,15 @@ var useAutocompleteInput = () => {
920
922
  pointerEvents: formControlProps.disabled || isAllSelected ? "none" : "auto",
921
923
  tabIndex: isAllSelected ? -1 : 0,
922
924
  onChange: handlerAll(props.onChange, onSearch),
923
- onCompositionStart: handlerAll(
924
- props.onCompositionStart,
925
- inputProps.onCompositionStart,
926
- onCompositionStart
927
- ),
928
925
  onCompositionEnd: handlerAll(
929
926
  props.onCompositionEnd,
930
927
  inputProps.onCompositionEnd,
931
928
  onCompositionEnd
929
+ ),
930
+ onCompositionStart: handlerAll(
931
+ props.onCompositionStart,
932
+ inputProps.onCompositionStart,
933
+ onCompositionStart
932
934
  )
933
935
  };
934
936
  },
@@ -956,4 +958,4 @@ export {
956
958
  useAutocomplete,
957
959
  useAutocompleteInput
958
960
  };
959
- //# sourceMappingURL=chunk-OLOU5HFC.mjs.map
961
+ //# sourceMappingURL=chunk-WERCEZNJ.mjs.map