@yamada-ui/autocomplete 2.0.0-next-20240703154117 → 2.0.0-next-20240705212157

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 (43) hide show
  1. package/dist/autocomplete-create.js.map +1 -1
  2. package/dist/autocomplete-create.mjs +1 -1
  3. package/dist/autocomplete-empty.js.map +1 -1
  4. package/dist/autocomplete-empty.mjs +1 -1
  5. package/dist/autocomplete-icon.js.map +1 -1
  6. package/dist/autocomplete-icon.mjs +1 -1
  7. package/dist/autocomplete-list.js.map +1 -1
  8. package/dist/autocomplete-list.mjs +1 -1
  9. package/dist/autocomplete-option-group.d.mts +1 -1
  10. package/dist/autocomplete-option-group.d.ts +1 -1
  11. package/dist/autocomplete-option-group.js.map +1 -1
  12. package/dist/autocomplete-option-group.mjs +1 -1
  13. package/dist/autocomplete-option.d.mts +1 -1
  14. package/dist/autocomplete-option.d.ts +1 -1
  15. package/dist/autocomplete-option.js +1 -1
  16. package/dist/autocomplete-option.js.map +1 -1
  17. package/dist/autocomplete-option.mjs +1 -1
  18. package/dist/autocomplete.d.mts +1 -1
  19. package/dist/autocomplete.d.ts +1 -1
  20. package/dist/autocomplete.js +32 -25
  21. package/dist/autocomplete.js.map +1 -1
  22. package/dist/autocomplete.mjs +1 -1
  23. package/dist/{chunk-DQV3VPJ3.mjs → chunk-H6RHDTAI.mjs} +33 -26
  24. package/dist/chunk-H6RHDTAI.mjs.map +1 -0
  25. package/dist/index.d.mts +1 -1
  26. package/dist/index.d.ts +1 -1
  27. package/dist/index.js +32 -25
  28. package/dist/index.js.map +1 -1
  29. package/dist/index.mjs +1 -1
  30. package/dist/multi-autocomplete.d.mts +1 -1
  31. package/dist/multi-autocomplete.d.ts +1 -1
  32. package/dist/multi-autocomplete.js +32 -25
  33. package/dist/multi-autocomplete.js.map +1 -1
  34. package/dist/multi-autocomplete.mjs +1 -1
  35. package/dist/{use-autocomplete-D30tMc5q.d.mts → use-autocomplete-BdEEP0Ef.d.mts} +9 -4
  36. package/dist/{use-autocomplete-D30tMc5q.d.ts → use-autocomplete-BdEEP0Ef.d.ts} +9 -4
  37. package/dist/use-autocomplete.d.mts +1 -1
  38. package/dist/use-autocomplete.d.ts +1 -1
  39. package/dist/use-autocomplete.js +32 -25
  40. package/dist/use-autocomplete.js.map +1 -1
  41. package/dist/use-autocomplete.mjs +1 -1
  42. package/package.json +13 -13
  43. package/dist/chunk-DQV3VPJ3.mjs.map +0 -1
@@ -446,23 +446,26 @@ var useAutocomplete = ({
446
446
  ({ node, index }) => "target" in node.dataset && !selectedIndexes.includes(index)
447
447
  );
448
448
  const validChildren = (0, import_utils6.getValidChildren)(children);
449
- const computedChildren = resolvedItems == null ? void 0 : resolvedItems.map((item, i) => {
450
- if ("value" in item) {
451
- const { label: label2, value: value2, ...props } = item;
452
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(AutocompleteOption, { value: value2, ...props, children: label2 }, i);
453
- } else if ("items" in item) {
454
- const { label: label2, items: items2 = [], ...props } = item;
455
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
456
- AutocompleteOptionGroup,
457
- {
458
- label: label2,
459
- ...props,
460
- children: items2.map(({ label: label3, value: value2, ...props2 }, i2) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(AutocompleteOption, { value: value2, ...props2, children: label3 }, i2))
461
- },
462
- i
463
- );
464
- }
465
- });
449
+ const computedChildren = (0, import_react.useMemo)(
450
+ () => resolvedItems == null ? void 0 : resolvedItems.map((item, i) => {
451
+ if ("value" in item) {
452
+ const { label: label2, value: value2, ...props } = item;
453
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(AutocompleteOption, { value: value2, ...props, children: label2 }, i);
454
+ } else if ("items" in item) {
455
+ const { label: label2, items: items2 = [], ...props } = item;
456
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
457
+ AutocompleteOptionGroup,
458
+ {
459
+ label: label2,
460
+ ...props,
461
+ children: items2.map(({ label: label3, value: value2, ...props2 }, i2) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(AutocompleteOption, { value: value2, ...props2, children: label3 }, i2))
462
+ },
463
+ i
464
+ );
465
+ }
466
+ }),
467
+ [resolvedItems]
468
+ );
466
469
  const isEmpty = !validChildren.length && !(computedChildren == null ? void 0 : computedChildren.length);
467
470
  const onOpen = (0, import_react.useCallback)(() => {
468
471
  if (formControlProps.disabled || formControlProps.readOnly) return;
@@ -658,8 +661,9 @@ var useAutocomplete = ({
658
661
  [allowFree, descendants]
659
662
  );
660
663
  const onChangeLabel = (0, import_react.useCallback)(
661
- (newValue, runOmit = true) => {
664
+ (newValue, { forceUpdate, runOmit = true } = {}) => {
662
665
  const selectedValues2 = getSelectedValues(newValue);
666
+ if (!forceUpdate && !selectedValues2.length) return;
663
667
  setLabel((prev) => {
664
668
  if (!isMulti) {
665
669
  return selectedValues2[0];
@@ -679,7 +683,7 @@ var useAutocomplete = ({
679
683
  [getSelectedValues, isMulti]
680
684
  );
681
685
  const onChange = (0, import_react.useCallback)(
682
- (newValue, runRebirth = true) => {
686
+ (newValue, { forceUpdate, runRebirth = true } = {}) => {
683
687
  setValue((prev) => {
684
688
  let next;
685
689
  if (!(0, import_utils6.isArray)(prev)) {
@@ -701,7 +705,7 @@ var useAutocomplete = ({
701
705
  return format((_a = node.textContent) != null ? _a : "").includes(newValue);
702
706
  }
703
707
  ).length > 0;
704
- onChangeLabel(newValue);
708
+ onChangeLabel(newValue, { forceUpdate });
705
709
  if (allowFree || isHit2) setInputValue("");
706
710
  if (isMulti && runRebirth) rebirthOptions(false);
707
711
  },
@@ -760,7 +764,7 @@ var useAutocomplete = ({
760
764
  if (!listRef.current) return;
761
765
  const newItem = { label: inputValue, value: inputValue };
762
766
  let newItems = [];
763
- if (resolvedItems) newItems = resolvedItems;
767
+ if (resolvedItems) newItems = [...resolvedItems];
764
768
  if (firstInsertPositionItem === "first") {
765
769
  newItems = [newItem, ...newItems];
766
770
  } else if (firstInsertPositionItem === "last") {
@@ -819,7 +823,7 @@ var useAutocomplete = ({
819
823
  const relatedTarget = (0, import_utils6.getEventRelatedTarget)(ev);
820
824
  if ((0, import_utils6.isContains)(containerRef.current, relatedTarget)) return;
821
825
  if (!closeOnBlur && isHit) return;
822
- if (allowFree && !!inputValue) onChange(inputValue, false);
826
+ if (allowFree && !!inputValue) onChange(inputValue, { runRebirth: false });
823
827
  setInputValue("");
824
828
  if (isOpen) onClose();
825
829
  },
@@ -827,7 +831,7 @@ var useAutocomplete = ({
827
831
  );
828
832
  const onDelete = (0, import_react.useCallback)(() => {
829
833
  if (!isMulti) {
830
- onChange("");
834
+ onChange("", { forceUpdate: true });
831
835
  } else {
832
836
  onChange(value[value.length - 1]);
833
837
  }
@@ -923,7 +927,7 @@ var useAutocomplete = ({
923
927
  setLabel(label2);
924
928
  } else {
925
929
  if (prevValue.current === value) return;
926
- onChangeLabel(value, false);
930
+ onChangeLabel(value, { runOmit: false });
927
931
  }
928
932
  }, [isMulti, value, onChangeLabel, getSelectedValues]);
929
933
  (0, import_utils6.useUpdateEffect)(() => {
@@ -934,6 +938,9 @@ var useAutocomplete = ({
934
938
  (0, import_utils6.useUpdateEffect)(() => {
935
939
  if (!isHit) setFocusedIndex(-2);
936
940
  }, [isHit]);
941
+ (0, import_utils6.useUpdateEffect)(() => {
942
+ setResolvedItems(items ? JSON.parse(JSON.stringify(items)) : void 0);
943
+ }, [items]);
937
944
  (0, import_utils6.useUnmountEffect)(() => {
938
945
  timeoutIds.current.forEach((id2) => clearTimeout(id2));
939
946
  timeoutIds.current.clear();
@@ -1274,7 +1281,7 @@ var useAutocompleteOption = (props) => {
1274
1281
  ]
1275
1282
  );
1276
1283
  (0, import_utils6.useUpdateEffect)(() => {
1277
- if (isSelected) onChangeLabel(optionValue != null ? optionValue : "", false);
1284
+ if (isSelected) onChangeLabel(optionValue != null ? optionValue : "", { runOmit: false });
1278
1285
  }, [optionValue]);
1279
1286
  const getOptionProps = (0, import_react.useCallback)(
1280
1287
  (props2 = {}, ref = null) => {