@yamada-ui/autocomplete 1.6.0-dev-20241011153139 → 1.6.0-dev-20241011162311

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. package/dist/autocomplete-context.d.mts +2 -4
  2. package/dist/autocomplete-context.d.ts +2 -4
  3. package/dist/autocomplete-context.js.map +1 -1
  4. package/dist/autocomplete-context.mjs +1 -1
  5. package/dist/autocomplete-create.js.map +1 -1
  6. package/dist/autocomplete-create.mjs +4 -4
  7. package/dist/autocomplete-empty.js.map +1 -1
  8. package/dist/autocomplete-empty.mjs +4 -4
  9. package/dist/autocomplete-icon.js.map +1 -1
  10. package/dist/autocomplete-icon.mjs +2 -2
  11. package/dist/autocomplete-list.js.map +1 -1
  12. package/dist/autocomplete-list.mjs +3 -3
  13. package/dist/autocomplete-option-group.js.map +1 -1
  14. package/dist/autocomplete-option-group.mjs +3 -3
  15. package/dist/autocomplete-option.js +11 -14
  16. package/dist/autocomplete-option.js.map +1 -1
  17. package/dist/autocomplete-option.mjs +4 -4
  18. package/dist/autocomplete.d.mts +0 -1
  19. package/dist/autocomplete.d.ts +0 -1
  20. package/dist/autocomplete.js +51 -88
  21. package/dist/autocomplete.js.map +1 -1
  22. package/dist/autocomplete.mjs +12 -12
  23. package/dist/{chunk-WERCEZNJ.mjs → chunk-352YZTOO.mjs} +39 -62
  24. package/dist/chunk-352YZTOO.mjs.map +1 -0
  25. package/dist/{chunk-V6YCG642.mjs → chunk-6OTUOEYS.mjs} +2 -2
  26. package/dist/{chunk-67X7JKWL.mjs → chunk-7QON6ZHO.mjs} +2 -2
  27. package/dist/{chunk-7LZUXESV.mjs → chunk-HUY7Q3WA.mjs} +14 -25
  28. package/dist/chunk-HUY7Q3WA.mjs.map +1 -0
  29. package/dist/{chunk-K5HCHHCJ.mjs → chunk-J6UKIKNL.mjs} +4 -4
  30. package/dist/{chunk-AIBJWPRA.mjs → chunk-KWIJUSLC.mjs} +4 -4
  31. package/dist/{chunk-Q33EMTO2.mjs → chunk-OY5JVCQQ.mjs} +14 -24
  32. package/dist/chunk-OY5JVCQQ.mjs.map +1 -0
  33. package/dist/{chunk-2HJUFFCU.mjs → chunk-PKRO525W.mjs} +4 -4
  34. package/dist/{chunk-VTBUO5SK.mjs → chunk-WJ4P4B2E.mjs} +3 -3
  35. package/dist/{chunk-4SBNPEK7.mjs → chunk-WNN655FX.mjs} +3 -3
  36. package/dist/{chunk-TR4X4EEG.mjs → chunk-X2PFHBZY.mjs} +2 -2
  37. package/dist/{chunk-WDQYM4FP.mjs → chunk-ZNO5RUVT.mjs} +1 -1
  38. package/dist/chunk-ZNO5RUVT.mjs.map +1 -0
  39. package/dist/{chunk-6OLHNK7O.mjs → chunk-ZXALWDKQ.mjs} +14 -18
  40. package/dist/chunk-ZXALWDKQ.mjs.map +1 -0
  41. package/dist/index.d.mts +0 -1
  42. package/dist/index.d.ts +0 -1
  43. package/dist/index.js +57 -105
  44. package/dist/index.js.map +1 -1
  45. package/dist/index.mjs +13 -13
  46. package/dist/multi-autocomplete.d.mts +0 -1
  47. package/dist/multi-autocomplete.d.ts +0 -1
  48. package/dist/multi-autocomplete.js +51 -89
  49. package/dist/multi-autocomplete.js.map +1 -1
  50. package/dist/multi-autocomplete.mjs +12 -12
  51. package/dist/use-autocomplete-list.js.map +1 -1
  52. package/dist/use-autocomplete-list.mjs +2 -2
  53. package/dist/use-autocomplete-option-group.js.map +1 -1
  54. package/dist/use-autocomplete-option-group.mjs +2 -2
  55. package/dist/use-autocomplete-option.js +11 -14
  56. package/dist/use-autocomplete-option.js.map +1 -1
  57. package/dist/use-autocomplete-option.mjs +2 -2
  58. package/dist/use-autocomplete.d.mts +11 -16
  59. package/dist/use-autocomplete.d.ts +11 -16
  60. package/dist/use-autocomplete.js +45 -72
  61. package/dist/use-autocomplete.js.map +1 -1
  62. package/dist/use-autocomplete.mjs +7 -7
  63. package/package.json +13 -13
  64. package/dist/chunk-6OLHNK7O.mjs.map +0 -1
  65. package/dist/chunk-7LZUXESV.mjs.map +0 -1
  66. package/dist/chunk-Q33EMTO2.mjs.map +0 -1
  67. package/dist/chunk-WDQYM4FP.mjs.map +0 -1
  68. package/dist/chunk-WERCEZNJ.mjs.map +0 -1
  69. /package/dist/{chunk-V6YCG642.mjs.map → chunk-6OTUOEYS.mjs.map} +0 -0
  70. /package/dist/{chunk-67X7JKWL.mjs.map → chunk-7QON6ZHO.mjs.map} +0 -0
  71. /package/dist/{chunk-K5HCHHCJ.mjs.map → chunk-J6UKIKNL.mjs.map} +0 -0
  72. /package/dist/{chunk-AIBJWPRA.mjs.map → chunk-KWIJUSLC.mjs.map} +0 -0
  73. /package/dist/{chunk-2HJUFFCU.mjs.map → chunk-PKRO525W.mjs.map} +0 -0
  74. /package/dist/{chunk-VTBUO5SK.mjs.map → chunk-WJ4P4B2E.mjs.map} +0 -0
  75. /package/dist/{chunk-4SBNPEK7.mjs.map → chunk-WNN655FX.mjs.map} +0 -0
  76. /package/dist/{chunk-TR4X4EEG.mjs.map → chunk-X2PFHBZY.mjs.map} +0 -0
@@ -1,15 +1,15 @@
1
1
  "use client"
2
2
  import {
3
3
  AutocompleteOptionGroup
4
- } from "./chunk-4SBNPEK7.mjs";
4
+ } from "./chunk-WNN655FX.mjs";
5
5
  import {
6
6
  AutocompleteOption
7
- } from "./chunk-AIBJWPRA.mjs";
7
+ } from "./chunk-KWIJUSLC.mjs";
8
8
  import {
9
9
  useAutocompleteContext,
10
10
  useAutocompleteDescendants,
11
11
  useAutocompleteDescendantsContext
12
- } from "./chunk-WDQYM4FP.mjs";
12
+ } from "./chunk-ZNO5RUVT.mjs";
13
13
 
14
14
  // src/use-autocomplete.tsx
15
15
  import { layoutStyleProperties } from "@yamada-ui/core";
@@ -32,6 +32,7 @@ import {
32
32
  mergeRefs,
33
33
  pickObject,
34
34
  splitObject,
35
+ useSafeLayoutEffect,
35
36
  useUnmountEffect,
36
37
  useUpdateEffect
37
38
  } from "@yamada-ui/utils";
@@ -259,15 +260,23 @@ var useAutocomplete = (props) => {
259
260
  );
260
261
  const validChildren = getValidChildren(children);
261
262
  const computedChildren = useMemo(
262
- () => resolvedItems == null ? void 0 : resolvedItems.map((item, i) => {
263
+ () => resolvedItems == null ? void 0 : resolvedItems.map((item, index) => {
263
264
  if ("value" in item) {
264
265
  const { label: label2, value: value2, ...props2 } = item;
265
- return /* @__PURE__ */ jsx(AutocompleteOption, { value: value2, ...props2, children: label2 }, i);
266
+ return /* @__PURE__ */ jsx(AutocompleteOption, { value: value2, ...props2, children: label2 }, index);
266
267
  } else if ("items" in item) {
267
268
  const { items: items2 = [], label: label2, ...props2 } = item;
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
+ return /* @__PURE__ */ jsx(
270
+ AutocompleteOptionGroup,
271
+ {
272
+ label: label2,
273
+ ...props2,
274
+ children: items2.map(({ label: label3, value: value2, ...props3 }, index2) => /* @__PURE__ */ jsx(AutocompleteOption, { value: value2, ...props3, children: label3 }, index2))
275
+ },
276
+ index
277
+ );
269
278
  }
270
- }),
279
+ }).filter(Boolean),
271
280
  [resolvedItems]
272
281
  );
273
282
  const isEmpty = !validChildren.length && !(computedChildren == null ? void 0 : computedChildren.length);
@@ -446,50 +455,29 @@ var useAutocomplete = (props) => {
446
455
  },
447
456
  [descendants, onFocusFirst]
448
457
  );
449
- const getSelectedValues = useCallback(
450
- (newValues) => {
451
- const enabledValues2 = descendants.enabledValues();
452
- const resolvedValues = isArray(newValues) ? newValues : [newValues];
453
- const selectedValues2 = resolvedValues.map((value2) => {
458
+ const onChangeLabel = useCallback(
459
+ (newValue) => {
460
+ const values = descendants.values();
461
+ if (!values.length) return;
462
+ const resolvedValues = isArray(newValue) ? newValue : [newValue];
463
+ const selectedLabel = resolvedValues.map((value2) => {
454
464
  var _a, _b;
455
- const { node } = (_a = enabledValues2.find(({ node: node2 }) => node2.dataset.value === value2)) != null ? _a : {};
465
+ const { node } = (_a = values.find(({ node: node2 }) => node2.dataset.value === value2)) != null ? _a : {};
456
466
  if (node) {
457
- const el = Array.from(node.children).find(
467
+ const { textContent } = (_b = Array.from(node.children).find(
458
468
  (child) => child.getAttribute("data-label") !== null
459
- );
460
- return (_b = el == null ? void 0 : el.textContent) != null ? _b : void 0;
469
+ )) != null ? _b : {};
470
+ return textContent;
461
471
  } else {
462
472
  return allowFree ? value2 : void 0;
463
473
  }
464
- }).filter(Boolean);
465
- return selectedValues2;
466
- },
467
- [allowFree, descendants]
468
- );
469
- const onChangeLabel = useCallback(
470
- (newValue, { forceUpdate, runOmit = true } = {}) => {
471
- const selectedValues2 = getSelectedValues(newValue);
472
- if (!forceUpdate && !selectedValues2.length) return;
473
- setLabel((prev) => {
474
- if (!isMulti) {
475
- return selectedValues2[0];
476
- } else {
477
- selectedValues2.forEach((selectedValue) => {
478
- const isSelected = isArray(prev) && prev.includes(selectedValue);
479
- if (!isSelected) {
480
- prev = [...isArray(prev) ? prev : [], selectedValue];
481
- } else if (runOmit) {
482
- prev = isArray(prev) ? prev.filter((value2) => value2 !== selectedValue) : void 0;
483
- }
484
- });
485
- return prev;
486
- }
487
- });
474
+ }).filter((label2) => !isUndefined(label2));
475
+ setLabel(!isMulti ? selectedLabel[0] : selectedLabel);
488
476
  },
489
- [getSelectedValues, isMulti]
477
+ [allowFree, descendants, isMulti]
490
478
  );
491
479
  const onChange = useCallback(
492
- (newValue, { forceUpdate, runRebirth = true } = {}) => {
480
+ (newValue, runRebirth = true) => {
493
481
  setValue((prev) => {
494
482
  let next;
495
483
  if (!isArray(prev)) {
@@ -511,14 +499,13 @@ var useAutocomplete = (props) => {
511
499
  return format((_a = node.textContent) != null ? _a : "").includes(newValue);
512
500
  }
513
501
  ).length > 0;
514
- onChangeLabel(newValue, { forceUpdate });
515
- if (allowFree || isHit2) setInputValue("");
502
+ if (allowCreate || allowFree || isHit2) setInputValue("");
516
503
  if (isMulti && runRebirth) rebirthOptions(false);
517
504
  },
518
505
  [
519
506
  allowFree,
507
+ allowCreate,
520
508
  isMulti,
521
- onChangeLabel,
522
509
  rebirthOptions,
523
510
  setValue,
524
511
  descendants,
@@ -629,7 +616,7 @@ var useAutocomplete = (props) => {
629
616
  const relatedTarget = getEventRelatedTarget(ev);
630
617
  if (isContains(containerRef.current, relatedTarget)) return;
631
618
  if (!closeOnBlur && isHit) return;
632
- if (allowFree && !!inputValue) onChange(inputValue, { runRebirth: false });
619
+ if (allowFree && !!inputValue) onChange(inputValue, false);
633
620
  setInputValue("");
634
621
  if (isOpen) onClose();
635
622
  },
@@ -637,7 +624,7 @@ var useAutocomplete = (props) => {
637
624
  );
638
625
  const onDelete = useCallback(() => {
639
626
  if (!isMulti) {
640
- onChange("", { forceUpdate: true });
627
+ onChange("");
641
628
  } else {
642
629
  onChange(value[value.length - 1]);
643
630
  }
@@ -724,18 +711,9 @@ var useAutocomplete = (props) => {
724
711
  onClose,
725
712
  maxSelectValues
726
713
  ]);
727
- useEffect(() => {
728
- var _a;
729
- if (isMulti) {
730
- if (JSON.stringify((_a = prevValue.current) != null ? _a : []) === JSON.stringify(value))
731
- return;
732
- const label2 = getSelectedValues(value);
733
- setLabel(label2);
734
- } else {
735
- if (prevValue.current === value) return;
736
- onChangeLabel(value, { runOmit: false });
737
- }
738
- }, [isMulti, value, onChangeLabel, getSelectedValues]);
714
+ useSafeLayoutEffect(() => {
715
+ onChangeLabel(value);
716
+ }, [value]);
739
717
  useUpdateEffect(() => {
740
718
  if (isOpen || allowFree) return;
741
719
  setFocusedIndex(-1);
@@ -842,8 +820,8 @@ var useAutocomplete = (props) => {
842
820
  id,
843
821
  allowCreate,
844
822
  allowFree,
823
+ children: children != null ? children : computedChildren,
845
824
  closeOnSelect,
846
- computedChildren,
847
825
  descendants,
848
826
  emptyMessage,
849
827
  focusedIndex,
@@ -867,7 +845,6 @@ var useAutocomplete = (props) => {
867
845
  inputProps,
868
846
  optionProps,
869
847
  onChange,
870
- onChangeLabel,
871
848
  onClear,
872
849
  onClose,
873
850
  onCompositionEnd,
@@ -958,4 +935,4 @@ export {
958
935
  useAutocomplete,
959
936
  useAutocompleteInput
960
937
  };
961
- //# sourceMappingURL=chunk-WERCEZNJ.mjs.map
938
+ //# sourceMappingURL=chunk-352YZTOO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/use-autocomplete.tsx"],"sourcesContent":["import type { HTMLUIProps, PropGetter } from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport type { ComboBoxProps, PopoverProps } from \"@yamada-ui/popover\"\nimport type { Union } from \"@yamada-ui/utils\"\nimport type {\n ChangeEvent,\n DOMAttributes,\n FocusEvent,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n} from \"react\"\nimport type { AutocompleteOptionProps } from \"./autocomplete-option\"\nimport type { AutocompleteOptionGroupProps } from \"./autocomplete-option-group\"\nimport { layoutStyleProperties } from \"@yamada-ui/core\"\nimport {\n formControlProperties,\n useFormControlProps,\n} from \"@yamada-ui/form-control\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport { useDisclosure } from \"@yamada-ui/use-disclosure\"\nimport { useOutsideClick } from \"@yamada-ui/use-outside-click\"\nimport {\n dataAttr,\n funcAll,\n getEventRelatedTarget,\n getValidChildren,\n handlerAll,\n isArray,\n isContains,\n isUndefined,\n mergeRefs,\n pickObject,\n splitObject,\n useSafeLayoutEffect,\n useUnmountEffect,\n useUpdateEffect,\n} from \"@yamada-ui/utils\"\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\"\nimport {\n useAutocompleteContext,\n useAutocompleteDescendants,\n useAutocompleteDescendantsContext,\n} from \"./autocomplete-context\"\nimport { AutocompleteOption } from \"./autocomplete-option\"\nimport { AutocompleteOptionGroup } from \"./autocomplete-option-group\"\n\ninterface AutocompleteItemWithValue extends AutocompleteOptionProps {\n label?: string\n value?: string\n}\n\ninterface AutocompleteItemWithItems\n extends AutocompleteOptionGroupProps,\n Pick<AutocompleteOptionProps, \"isDisabled\" | \"isFocusable\"> {\n items?: AutocompleteItemWithValue[]\n}\n\nexport type AutocompleteItem =\n | AutocompleteItemWithItems\n | AutocompleteItemWithValue\n\ntype MaybeValue = string | string[]\n\nconst kanaMap: { [key: string]: string } = {\n \"。\": \"。\",\n \"「\": \"「\",\n \"」\": \"」\",\n \"、\": \"、\",\n \"・\": \"・\",\n ヲ: \"ヲ\",\n ヺ: \"ヺ\",\n ァ: \"ァ\",\n ィ: \"ィ\",\n ゥ: \"ゥ\",\n ェ: \"ェ\",\n ォ: \"ォ\",\n ャ: \"ャ\",\n ュ: \"ュ\",\n ョ: \"ョ\",\n ッ: \"ッ\",\n ー: \"ー\",\n ア: \"ア\",\n イ: \"イ\",\n ウ: \"ウ\",\n ヴ: \"ヴ\",\n エ: \"エ\",\n オ: \"オ\",\n カ: \"カ\",\n ガ: \"ガ\",\n キ: \"キ\",\n ギ: \"ギ\",\n ク: \"ク\",\n グ: \"グ\",\n ケ: \"ケ\",\n ゲ: \"ゲ\",\n コ: \"コ\",\n ゴ: \"ゴ\",\n サ: \"サ\",\n ザ: \"ザ\",\n シ: \"シ\",\n ジ: \"ジ\",\n ス: \"ス\",\n ズ: \"ズ\",\n セ: \"セ\",\n ゼ: \"ゼ\",\n ソ: \"ソ\",\n ゾ: \"ゾ\",\n タ: \"タ\",\n ダ: \"ダ\",\n チ: \"チ\",\n ヂ: \"ヂ\",\n ツ: \"ツ\",\n ヅ: \"ヅ\",\n テ: \"テ\",\n デ: \"デ\",\n ト: \"ト\",\n ド: \"ド\",\n ナ: \"ナ\",\n ニ: \"ニ\",\n ヌ: \"ヌ\",\n ネ: \"ネ\",\n ノ: \"ノ\",\n ハ: \"ハ\",\n バ: \"バ\",\n パ: \"パ\",\n ヒ: \"ヒ\",\n ビ: \"ビ\",\n ピ: \"ピ\",\n フ: \"フ\",\n ブ: \"ブ\",\n プ: \"プ\",\n ヘ: \"ヘ\",\n ベ: \"ベ\",\n ペ: \"ペ\",\n ホ: \"ホ\",\n ボ: \"ボ\",\n ポ: \"ポ\",\n マ: \"マ\",\n ミ: \"ミ\",\n ム: \"ム\",\n メ: \"メ\",\n モ: \"モ\",\n ヤ: \"ヤ\",\n ユ: \"ユ\",\n ヨ: \"ヨ\",\n ラ: \"ラ\",\n リ: \"リ\",\n ル: \"ル\",\n レ: \"レ\",\n ロ: \"ロ\",\n ワ: \"ワ\",\n ヷ: \"ヷ\",\n ン: \"ン\",\n}\n\nconst defaultFormat = (value: string) => {\n value = value.replace(/[!-~]/g, (v) =>\n String.fromCharCode(v.charCodeAt(0) - 0xfee0),\n )\n\n const reg = new RegExp(\"(\" + Object.keys(kanaMap).join(\"|\") + \")\", \"g\")\n\n value = value\n .replace(reg, (v) => kanaMap[v]!)\n .replace(/゙/g, \"゛\")\n .replace(/゚/g, \"゜\")\n\n value = value.toUpperCase()\n\n return value\n}\n\nconst flattenItems = (\n items: AutocompleteItem[],\n): AutocompleteItemWithValue[] => {\n const filterItems = (\n items: AutocompleteItem[] | AutocompleteItemWithValue[],\n ): (AutocompleteItemWithValue | AutocompleteItemWithValue[])[] =>\n items\n .map((item) => {\n const { isDisabled, isFocusable } = item\n const trulyDisabled = !!isDisabled && !isFocusable\n\n if (trulyDisabled) return\n\n if (\"items\" in item) {\n return filterItems(item.items ?? [])\n } else {\n return item as AutocompleteItemWithValue\n }\n })\n .filter(Boolean) as (\n | AutocompleteItemWithValue\n | AutocompleteItemWithValue[]\n )[]\n\n return filterItems(items).flat(Infinity) as AutocompleteItemWithValue[]\n}\n\ninterface UseAutocompleteBaseProps<T extends MaybeValue = string>\n extends ComboBoxProps,\n FormControlOptions {\n /**\n * If `true`, enables the creation of autocomplete option.\n *\n * @default false\n */\n allowCreate?: boolean\n /**\n * If `true`, enables the free input.\n */\n allowFree?: boolean\n /**\n * If `true`, the list element will be closed when value is selected.\n *\n * @default true\n */\n closeOnSelect?: boolean\n /**\n * The initial value of the autocomplete.\n */\n defaultValue?: T\n /**\n * The message displayed when the search yields no hits.\n *\n * @default 'No results found'\n */\n emptyMessage?: string\n /**\n * Function to format text when search input.\n */\n format?: (value: string) => string\n /**\n * The position to be inserted when the autocomplete option is created.\n *\n * @default 'first'\n */\n insertPositionItem?: [string, \"first\" | \"last\"] | Union<\"first\" | \"last\">\n /**\n * If provided, generate options based on items.\n */\n items?: AutocompleteItem[]\n /**\n * The maximum selectable value.\n */\n maxSelectValues?: number\n /**\n * If `true`, the selected item(s) will be excluded from the list.\n *\n * @default false\n */\n omitSelectedValues?: boolean\n /**\n * The value of the autocomplete.\n */\n value?: T\n /**\n * Props for select option element.\n */\n optionProps?: Omit<AutocompleteOptionProps, \"children\" | \"value\">\n /**\n * The callback invoked when value state changes.\n */\n onChange?: (value: T) => void\n /**\n * The callback invoked when autocomplete option created.\n */\n onCreate?: (newItem: AutocompleteItem, newItems: AutocompleteItem[]) => void\n /**\n * The callback invoked when search input.\n */\n onSearch?: (ev: ChangeEvent<HTMLInputElement>) => void\n}\n\nexport interface UseAutocompleteProps<T extends MaybeValue = string>\n extends Omit<\n HTMLUIProps<\"input\">,\n | \"disabled\"\n | \"list\"\n | \"readOnly\"\n | \"required\"\n | \"size\"\n | keyof UseAutocompleteBaseProps\n >,\n UseAutocompleteBaseProps<T> {}\n\nexport const useAutocomplete = <T extends MaybeValue = string>(\n props: UseAutocompleteProps<T>,\n) => {\n const {\n allowCreate = false,\n allowFree = false,\n animation,\n boundary,\n children,\n closeDelay,\n closeOnBlur = true,\n closeOnEsc = true,\n closeOnSelect = true,\n defaultIsOpen,\n defaultValue,\n duration = 0.2,\n emptyMessage = \"No results found\",\n eventListeners,\n flip,\n format = defaultFormat,\n gutter,\n insertPositionItem = \"first\",\n isLazy,\n isOpen: isOpenProp,\n items,\n lazyBehavior,\n matchWidth = true,\n maxSelectValues,\n modifiers,\n offset,\n omitSelectedValues = false,\n openDelay,\n placeholder,\n placement = \"bottom-start\",\n preventOverflow,\n strategy,\n value: valueProp,\n optionProps,\n onChange: onChangeProp,\n onClose: onCloseProp,\n onCreate: onCreateProp,\n onKeyDown: onKeyDownProp,\n onOpen: onOpenProp,\n onSearch: onSearchProp,\n ...rest\n } = useFormControlProps(props)\n const {\n \"aria-readonly\": _ariaReadonly,\n onFocus: onFocusProp,\n ...formControlProps\n } = pickObject(rest, formControlProperties)\n const [containerProps, inputProps] = splitObject(rest, layoutStyleProperties)\n const { id } = rest\n\n const descendants = useAutocompleteDescendants()\n\n const containerRef = useRef<HTMLDivElement>(null)\n const listRef = useRef<HTMLUListElement>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n const timeoutIds = useRef<Set<any>>(new Set([]))\n const isComposition = useRef<boolean>(false)\n const prevValue = useRef<T | undefined>(undefined)\n\n const [resolvedItems, setResolvedItems] = useState<\n AutocompleteItem[] | undefined\n >(items ? JSON.parse(JSON.stringify(items)) : undefined)\n const [value, setValue] = useControllableState({\n defaultValue,\n value: valueProp,\n onChange: onChangeProp,\n })\n const [label, setLabel] = useState<T | undefined>(undefined)\n const [inputValue, setInputValue] = useState<string>(\"\")\n const [focusedIndex, setFocusedIndex] = useState<number>(-1)\n const [isAllSelected, setIsAllSelected] = useState<boolean>(false)\n const [isHit, setIsHit] = useState<boolean>(true)\n const {\n isOpen,\n onClose,\n onOpen: onInternalOpen,\n } = useDisclosure({\n defaultIsOpen,\n isOpen: isOpenProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n })\n const isFocused = focusedIndex > -1\n const isCreate = focusedIndex === -2 && allowCreate\n const isMulti = isArray(value)\n const isEmptyValue = !isMulti ? !value : !value.length\n\n const [firstInsertPositionItem, secondInsertPositionItem] = useMemo(() => {\n if (isArray(insertPositionItem)) {\n return insertPositionItem\n } else {\n return [insertPositionItem, \"first\"]\n }\n }, [insertPositionItem])\n\n if (allowCreate && !isUndefined(children)) {\n console.warn(\n `${!isMulti ? \"Autocomplete\" : \"MultiAutocomplete\"}: ${\n !isMulti ? \"Autocomplete\" : \"MultiAutocomplete\"\n } internally prefers 'children'. If 'allowCreate' is true, it will not be reflected correctly. If want to reflect, please set 'items' in props.`,\n )\n }\n\n const selectedValues = descendants.enabledValues(\n ({ node }) => isMulti && value.includes(node.dataset.value ?? \"\"),\n )\n const selectedIndexes = selectedValues.map(({ index }) => index)\n const enabledValues = descendants.enabledValues(\n ({ index, node }) =>\n \"target\" in node.dataset && !selectedIndexes.includes(index),\n )\n\n const validChildren = getValidChildren(children)\n\n const computedChildren = useMemo(\n () =>\n resolvedItems\n ?.map((item, index) => {\n if (\"value\" in item) {\n const { label, value, ...props } = item\n\n return (\n <AutocompleteOption key={index} value={value} {...props}>\n {label}\n </AutocompleteOption>\n )\n } else if (\"items\" in item) {\n const { items = [], label, ...props } = item\n\n return (\n <AutocompleteOptionGroup\n key={index}\n label={label as string}\n {...props}\n >\n {items.map(({ label, value, ...props }, index) => (\n <AutocompleteOption key={index} value={value} {...props}>\n {label}\n </AutocompleteOption>\n ))}\n </AutocompleteOptionGroup>\n )\n }\n })\n .filter(Boolean) as ReactElement[] | undefined,\n [resolvedItems],\n )\n\n const isEmpty = !validChildren.length && !computedChildren?.length\n\n const onOpen = useCallback(() => {\n if (formControlProps.disabled || formControlProps.readOnly) return\n\n if (!allowCreate && (isEmpty || isAllSelected)) return\n\n onInternalOpen()\n\n if (inputRef.current) inputRef.current.focus()\n }, [allowCreate, formControlProps, isAllSelected, isEmpty, onInternalOpen])\n\n const onFocusFirst = useCallback(() => {\n const id = setTimeout(() => {\n if (isEmpty || isAllSelected) return\n\n const first = descendants.enabledFirstValue(\n ({ node }) => \"target\" in node.dataset,\n )\n\n if (!first) return\n\n if (!isMulti || !omitSelectedValues) {\n setFocusedIndex(first.index)\n } else {\n if (selectedIndexes.includes(first.index)) {\n const enabledFirst = enabledValues[0]\n\n setFocusedIndex(enabledFirst?.index ?? -1)\n } else {\n setFocusedIndex(first.index)\n }\n }\n })\n\n timeoutIds.current.add(id)\n }, [\n descendants,\n enabledValues,\n isAllSelected,\n isEmpty,\n isMulti,\n omitSelectedValues,\n selectedIndexes,\n ])\n\n const onFocusLast = useCallback(() => {\n const id = setTimeout(() => {\n if (isEmpty || isAllSelected) return\n\n const last = descendants.enabledLastValue(\n ({ node }) => \"target\" in node.dataset,\n )\n\n if (!last) return\n\n if (!isMulti || !omitSelectedValues) {\n setFocusedIndex(last.index)\n } else {\n if (selectedIndexes.includes(last.index)) {\n const enabledLast = enabledValues.reverse()[0]\n\n setFocusedIndex(enabledLast?.index ?? -1)\n } else {\n setFocusedIndex(last.index)\n }\n }\n })\n\n timeoutIds.current.add(id)\n }, [\n descendants,\n enabledValues,\n isAllSelected,\n isEmpty,\n isMulti,\n omitSelectedValues,\n selectedIndexes,\n ])\n\n const onFocusSelected = useCallback(() => {\n const id = setTimeout(() => {\n const values = descendants.enabledValues()\n\n const selected = values.find(({ node }) =>\n !isMulti\n ? node.dataset.value === value\n : value.includes(node.dataset.value ?? \"\"),\n )\n\n if (selected) setFocusedIndex(selected.index)\n })\n\n timeoutIds.current.add(id)\n }, [descendants, isMulti, value])\n\n const onFocusNext = useCallback(\n (index: number = focusedIndex) => {\n const id = setTimeout(() => {\n const next = descendants.enabledNextValue(\n index,\n ({ node }) => \"target\" in node.dataset,\n )\n\n if (!next) return\n\n if (!isMulti || !omitSelectedValues) {\n setFocusedIndex(next.index)\n } else {\n if (selectedIndexes.includes(next.index)) {\n const enabledNext =\n enabledValues.find(({ index }) => next.index < index) ??\n enabledValues[0]\n\n setFocusedIndex(enabledNext?.index ?? -1)\n } else {\n setFocusedIndex(next.index)\n }\n }\n })\n\n timeoutIds.current.add(id)\n },\n [\n descendants,\n enabledValues,\n focusedIndex,\n isMulti,\n omitSelectedValues,\n selectedIndexes,\n ],\n )\n\n const onFocusPrev = useCallback(\n (index: number = focusedIndex) => {\n const id = setTimeout(() => {\n const prev = descendants.enabledPrevValue(\n index,\n ({ node }) => \"target\" in node.dataset,\n )\n\n if (!prev) return\n\n if (!isMulti || !omitSelectedValues) {\n setFocusedIndex(prev.index)\n } else {\n if (selectedIndexes.includes(prev.index)) {\n const enabledPrev =\n enabledValues.reverse().find(({ index }) => index < prev.index) ??\n enabledValues[0]\n\n setFocusedIndex(enabledPrev?.index ?? -1)\n } else {\n setFocusedIndex(prev.index)\n }\n }\n })\n\n timeoutIds.current.add(id)\n },\n [\n descendants,\n enabledValues,\n focusedIndex,\n isMulti,\n omitSelectedValues,\n selectedIndexes,\n ],\n )\n\n const onFocusFirstOrSelected =\n isEmptyValue || omitSelectedValues ? onFocusFirst : onFocusSelected\n const onFocusLastOrSelected =\n isEmptyValue || omitSelectedValues ? onFocusLast : onFocusSelected\n\n const pickOptions = useCallback(\n (value: string) => {\n const values = descendants.values()\n\n let isHit = false\n let isFocused = false\n\n values.forEach(({ index, node }) => {\n if (format(node.textContent ?? \"\").includes(value)) {\n isHit = true\n\n const isDisabled = \"disabled\" in node.dataset\n\n node.dataset.target = \"\"\n\n if (!isFocused && !isDisabled) {\n isFocused = true\n\n setFocusedIndex(index)\n }\n } else {\n delete node.dataset.target\n }\n })\n\n setIsHit(isHit)\n },\n [descendants, format],\n )\n\n const rebirthOptions = useCallback(\n (runFocus = true) => {\n const values = descendants.values()\n\n values.forEach(({ node }) => {\n node.dataset.target = \"\"\n })\n\n if (runFocus) onFocusFirst()\n\n setIsHit(true)\n },\n [descendants, onFocusFirst],\n )\n\n const onChangeLabel = useCallback(\n (newValue: MaybeValue) => {\n const values = descendants.values()\n\n if (!values.length) return\n\n const resolvedValues = isArray(newValue) ? newValue : [newValue]\n\n const selectedLabel = resolvedValues\n .map((value) => {\n const { node } =\n values.find(({ node }) => node.dataset.value === value) ?? {}\n\n if (node) {\n const { textContent } =\n Array.from(node.children).find(\n (child) => child.getAttribute(\"data-label\") !== null,\n ) ?? {}\n\n return textContent\n } else {\n return allowFree ? value : undefined\n }\n })\n .filter((label) => !isUndefined(label))\n\n setLabel((!isMulti ? selectedLabel[0] : selectedLabel) as T)\n },\n [allowFree, descendants, isMulti],\n )\n\n const onChange = useCallback(\n (newValue: string, runRebirth = true) => {\n setValue((prev) => {\n let next: T\n\n if (!isArray(prev)) {\n next = newValue as T\n } else {\n const isSelected = prev.includes(newValue)\n\n if (!isSelected) {\n next = [...prev, newValue] as T\n } else {\n next = prev.filter((value) => value !== newValue) as T\n }\n }\n\n prevValue.current = next\n\n return next\n })\n\n const isHit =\n descendants\n .values()\n .filter(({ node }) =>\n format(node.textContent ?? \"\").includes(newValue),\n ).length > 0\n\n if (allowCreate || allowFree || isHit) setInputValue(\"\")\n\n if (isMulti && runRebirth) rebirthOptions(false)\n },\n [\n allowFree,\n allowCreate,\n isMulti,\n rebirthOptions,\n setValue,\n descendants,\n format,\n ],\n )\n\n const onSelect = useCallback(() => {\n let enabledValue = descendants.value(focusedIndex)\n\n if (\"disabled\" in (enabledValue?.node.dataset ?? {}))\n enabledValue = undefined\n\n if (!enabledValue) return\n\n const value = enabledValue.node.dataset.value ?? \"\"\n\n onChange(value)\n\n if (closeOnSelect) onClose()\n\n if (omitSelectedValues) onFocusNext()\n }, [\n closeOnSelect,\n descendants,\n focusedIndex,\n omitSelectedValues,\n onChange,\n onClose,\n onFocusNext,\n ])\n\n const onSearch = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (!isOpen) onOpen()\n\n onSearchProp?.(ev)\n\n const value = ev.target.value\n const computedValue = format(value)\n\n if (computedValue) {\n pickOptions(computedValue)\n } else {\n rebirthOptions()\n }\n\n setInputValue(value)\n },\n [isOpen, onOpen, format, onSearchProp, pickOptions, rebirthOptions],\n )\n\n const onCompositionStart = useCallback(() => {\n isComposition.current = true\n }, [])\n\n const onCompositionEnd = useCallback(() => {\n isComposition.current = false\n }, [])\n\n const onCreate = useCallback(() => {\n if (!listRef.current) return\n\n const newItem: AutocompleteItem = { label: inputValue, value: inputValue }\n\n let newItems: AutocompleteItem[] = []\n\n if (resolvedItems) newItems = [...resolvedItems]\n\n if (firstInsertPositionItem === \"first\") {\n newItems = [newItem, ...newItems]\n } else if (firstInsertPositionItem === \"last\") {\n newItems = [...newItems, newItem]\n } else {\n const i = newItems.findIndex(\n ({ label }) => label === firstInsertPositionItem,\n )\n\n const targetItem = newItems[i]\n\n if (i !== -1 && targetItem && \"items\" in targetItem) {\n if (secondInsertPositionItem === \"first\") {\n targetItem.items = [newItem, ...(targetItem.items ?? [])]\n } else {\n targetItem.items = [...(targetItem.items ?? []), newItem]\n }\n\n newItems[i] = targetItem\n } else {\n console.warn(\n `${\n !isMulti ? \"Autocomplete\" : \"MultiAutocomplete\"\n }: '${firstInsertPositionItem}' specified in insertPositionItem does not exist in the option group.`,\n )\n }\n }\n\n setResolvedItems(newItems)\n onChange(inputValue)\n rebirthOptions(false)\n\n const index = flattenItems(newItems).findIndex(\n ({ value }) => value === inputValue,\n )\n\n setFocusedIndex(index)\n\n onCreateProp?.(newItem, newItems)\n }, [\n inputValue,\n resolvedItems,\n firstInsertPositionItem,\n onChange,\n rebirthOptions,\n onCreateProp,\n secondInsertPositionItem,\n isMulti,\n ])\n\n const onClick = useCallback(() => {\n if (isOpen) {\n if (inputRef.current) inputRef.current.focus()\n } else {\n onOpen()\n\n onFocusFirstOrSelected()\n }\n }, [isOpen, onFocusFirstOrSelected, onOpen])\n\n const onFocus = useCallback(() => {\n if (isOpen) return\n\n onOpen()\n\n onFocusFirstOrSelected()\n }, [isOpen, onFocusFirstOrSelected, onOpen])\n\n const onBlur = useCallback(\n (ev: FocusEvent<HTMLDivElement>) => {\n const relatedTarget = getEventRelatedTarget(ev)\n\n if (isContains(containerRef.current, relatedTarget)) return\n\n if (!closeOnBlur && isHit) return\n\n if (allowFree && !!inputValue) onChange(inputValue, false)\n\n setInputValue(\"\")\n\n if (isOpen) onClose()\n },\n [closeOnBlur, isHit, isOpen, inputValue, allowFree, onClose, onChange],\n )\n\n const onDelete = useCallback(() => {\n if (!isMulti) {\n onChange(\"\")\n } else {\n onChange(value[value.length - 1]!)\n }\n\n if (!isOpen) onFocus()\n }, [isMulti, isOpen, onChange, onFocus, value])\n\n const onClear = useCallback(\n (ev: MouseEvent<HTMLDivElement>) => {\n ev.stopPropagation()\n\n prevValue.current = [] as unknown as T\n setValue([] as unknown as T)\n setLabel(undefined)\n setInputValue(\"\")\n rebirthOptions()\n\n if (isOpen && inputRef.current) inputRef.current.focus()\n },\n [isOpen, setLabel, setInputValue, setValue, rebirthOptions],\n )\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLDivElement>) => {\n if (ev.key === \" \") ev.key = ev.code\n\n if (formControlProps.disabled || formControlProps.readOnly) return\n if (isComposition.current) return\n\n const enabledDelete = label === inputValue || !inputValue.length\n\n const actions: { [key: string]: Function | undefined } = {\n ArrowDown: isFocused\n ? () => onFocusNext()\n : !isOpen\n ? funcAll(onOpen, onFocusFirstOrSelected)\n : undefined,\n ArrowUp: isFocused\n ? () => onFocusPrev()\n : !isOpen\n ? funcAll(onOpen, onFocusLastOrSelected)\n : undefined,\n Backspace: !isEmptyValue && enabledDelete ? onDelete : undefined,\n End: isOpen ? onFocusLast : undefined,\n Enter: isCreate\n ? onCreate\n : isFocused\n ? onSelect\n : !isOpen\n ? funcAll(onOpen, onFocusFirstOrSelected)\n : allowFree && isMulti\n ? () => {\n if (inputValue) onChange(inputValue)\n\n setFocusedIndex(0)\n }\n : undefined,\n Escape: closeOnEsc ? onClose : undefined,\n Home: isOpen ? onFocusFirst : undefined,\n Space: isCreate\n ? onCreate\n : isFocused\n ? onSelect\n : !isOpen\n ? funcAll(onOpen, onFocusFirstOrSelected)\n : undefined,\n }\n\n const action = actions[ev.key]\n\n if (!action) return\n\n ev.preventDefault()\n ev.stopPropagation()\n\n action(ev)\n },\n [\n allowFree,\n formControlProps,\n label,\n inputValue,\n onOpen,\n isFocused,\n isMulti,\n onFocusFirstOrSelected,\n onFocusNext,\n onFocusLastOrSelected,\n onFocusPrev,\n isCreate,\n onCreate,\n onSelect,\n isOpen,\n onFocusFirst,\n onFocusLast,\n closeOnEsc,\n onClose,\n isEmptyValue,\n onDelete,\n onChange,\n ],\n )\n\n useEffect(() => {\n if (!isMulti) return\n\n if (!omitSelectedValues && isUndefined(maxSelectValues)) return\n\n const isAll = value.length > 0 && value.length === descendants.count()\n const isMax = value.length === maxSelectValues\n\n if (isAll || isMax) {\n onClose()\n setIsAllSelected(true)\n } else {\n setIsAllSelected(false)\n }\n }, [\n omitSelectedValues,\n value,\n descendants,\n isMulti,\n onClose,\n maxSelectValues,\n ])\n\n useSafeLayoutEffect(() => {\n onChangeLabel(value)\n }, [value])\n\n useUpdateEffect(() => {\n if (isOpen || allowFree) return\n\n setFocusedIndex(-1)\n setInputValue(\"\")\n }, [isOpen])\n\n useUpdateEffect(() => {\n if (!isHit) setFocusedIndex(-2)\n }, [isHit])\n\n useUpdateEffect(() => {\n setResolvedItems(items ? JSON.parse(JSON.stringify(items)) : undefined)\n }, [items])\n\n useUnmountEffect(() => {\n timeoutIds.current.forEach((id) => clearTimeout(id))\n timeoutIds.current.clear()\n })\n\n useOutsideClick({\n ref: containerRef,\n enabled: isOpen && (closeOnBlur || !isHit),\n handler: onClose,\n })\n\n const getPopoverProps = useCallback(\n (props?: PopoverProps): PopoverProps => ({\n animation,\n boundary,\n closeDelay,\n closeOnBlur,\n duration,\n eventListeners,\n flip,\n gutter,\n isLazy,\n lazyBehavior,\n matchWidth,\n modifiers,\n offset,\n openDelay,\n placement,\n preventOverflow,\n strategy,\n ...props,\n closeOnButton: false,\n isOpen,\n trigger: \"never\",\n onClose,\n onOpen,\n }),\n [\n closeOnBlur,\n openDelay,\n closeDelay,\n isLazy,\n lazyBehavior,\n animation,\n duration,\n offset,\n gutter,\n preventOverflow,\n flip,\n matchWidth,\n boundary,\n eventListeners,\n strategy,\n placement,\n modifiers,\n isOpen,\n onOpen,\n onClose,\n ],\n )\n\n const getContainerProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n ref: mergeRefs(containerRef, ref),\n ...containerProps,\n ...props,\n ...formControlProps,\n onBlur: handlerAll(props.onBlur, rest.onBlur, onBlur),\n onClick: handlerAll(props.onClick, rest.onClick, onClick),\n }),\n\n [containerProps, formControlProps, onBlur, onClick, rest],\n )\n\n const getFieldProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n ref,\n tabIndex: -1,\n ...props,\n ...formControlProps,\n \"aria-expanded\": dataAttr(isOpen),\n \"data-active\": dataAttr(isOpen),\n placeholder,\n onFocus: handlerAll(props.onFocus, onFocusProp, onFocus),\n onKeyDown: handlerAll(props.onKeyDown, onKeyDownProp, onKeyDown),\n }),\n [\n formControlProps,\n placeholder,\n isOpen,\n onFocusProp,\n onFocus,\n onKeyDownProp,\n onKeyDown,\n ],\n )\n\n return {\n id,\n allowCreate,\n allowFree,\n children: children ?? computedChildren,\n closeOnSelect,\n descendants,\n emptyMessage,\n focusedIndex,\n inputRef,\n inputValue,\n isAllSelected,\n isEmpty,\n isHit,\n isOpen,\n label,\n listRef,\n omitSelectedValues,\n pickOptions,\n rebirthOptions,\n setFocusedIndex,\n value,\n formControlProps,\n getContainerProps,\n getFieldProps,\n getPopoverProps,\n inputProps: inputProps as DOMAttributes<HTMLInputElement>,\n optionProps,\n onChange,\n onClear,\n onClose,\n onCompositionEnd,\n onCompositionStart,\n onCreate,\n onFocusFirst,\n onFocusLast,\n onFocusNext,\n onFocusPrev,\n onFocusSelected,\n onOpen,\n onSearch,\n }\n}\n\nexport type UseAutocompleteReturn = ReturnType<typeof useAutocomplete>\n\nexport const useAutocompleteInput = () => {\n const {\n id,\n focusedIndex,\n inputRef,\n isAllSelected,\n isOpen,\n listRef,\n formControlProps,\n inputProps,\n onCompositionEnd,\n onCompositionStart,\n onSearch,\n } = useAutocompleteContext()\n\n const { value } = useAutocompleteDescendantsContext()\n\n useUpdateEffect(() => {\n if (isAllSelected && inputRef.current) inputRef.current.blur()\n }, [isAllSelected])\n\n const getInputProps: PropGetter<\"input\"> = useCallback(\n (props = {}, ref = null) => ({\n ref: mergeRefs(inputRef, ref),\n ...formControlProps,\n \"aria-activedescendant\": value(focusedIndex)?.node.id,\n \"aria-autocomplete\": \"list\",\n \"aria-controls\": listRef.current?.id,\n \"aria-expanded\": isOpen,\n \"aria-haspopup\": \"listbox\",\n autoCapitalize: \"none\",\n autoComplete: \"off\",\n role: \"combobox\",\n spellCheck: \"false\",\n ...inputProps,\n ...props,\n id,\n cursor: formControlProps.readOnly ? \"default\" : \"text\",\n pointerEvents:\n formControlProps.disabled || isAllSelected ? \"none\" : \"auto\",\n tabIndex: isAllSelected ? -1 : 0,\n onChange: handlerAll(props.onChange, onSearch),\n onCompositionEnd: handlerAll(\n props.onCompositionEnd,\n inputProps.onCompositionEnd,\n onCompositionEnd,\n ),\n onCompositionStart: handlerAll(\n props.onCompositionStart,\n inputProps.onCompositionStart,\n onCompositionStart,\n ),\n }),\n [\n listRef,\n focusedIndex,\n isOpen,\n inputProps,\n inputRef,\n formControlProps,\n id,\n isAllSelected,\n value,\n onSearch,\n onCompositionStart,\n onCompositionEnd,\n ],\n )\n\n return {\n getInputProps,\n }\n}\n\nexport type UseAutocompleteInputReturn = ReturnType<typeof useAutocompleteInput>\n"],"mappings":"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","names":["items","label","value","props","index","id","isHit","isFocused","node"]}
@@ -1,7 +1,7 @@
1
1
  "use client"
2
2
  import {
3
3
  useAutocompleteContext
4
- } from "./chunk-WDQYM4FP.mjs";
4
+ } from "./chunk-ZNO5RUVT.mjs";
5
5
 
6
6
  // src/autocomplete-icon.tsx
7
7
  import { forwardRef, ui } from "@yamada-ui/core";
@@ -105,4 +105,4 @@ export {
105
105
  AutocompleteClearIcon,
106
106
  AutocompleteItemIcon
107
107
  };
108
- //# sourceMappingURL=chunk-V6YCG642.mjs.map
108
+ //# sourceMappingURL=chunk-6OTUOEYS.mjs.map
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  useAutocompleteContext,
4
4
  useAutocompleteDescendantsContext
5
- } from "./chunk-WDQYM4FP.mjs";
5
+ } from "./chunk-ZNO5RUVT.mjs";
6
6
 
7
7
  // src/use-autocomplete-option-group.ts
8
8
  import { layoutStyleProperties } from "@yamada-ui/core";
@@ -75,4 +75,4 @@ var useAutocompleteOptionGroup = ({
75
75
  export {
76
76
  useAutocompleteOptionGroup
77
77
  };
78
- //# sourceMappingURL=chunk-67X7JKWL.mjs.map
78
+ //# sourceMappingURL=chunk-7QON6ZHO.mjs.map
@@ -2,25 +2,25 @@
2
2
  import {
3
3
  useAutocomplete,
4
4
  useAutocompleteInput
5
- } from "./chunk-WERCEZNJ.mjs";
5
+ } from "./chunk-352YZTOO.mjs";
6
6
  import {
7
7
  AutocompleteCreate
8
- } from "./chunk-K5HCHHCJ.mjs";
8
+ } from "./chunk-J6UKIKNL.mjs";
9
9
  import {
10
10
  AutocompleteEmpty
11
- } from "./chunk-2HJUFFCU.mjs";
11
+ } from "./chunk-PKRO525W.mjs";
12
12
  import {
13
13
  AutocompleteList
14
- } from "./chunk-VTBUO5SK.mjs";
14
+ } from "./chunk-WJ4P4B2E.mjs";
15
15
  import {
16
16
  AutocompleteClearIcon,
17
17
  AutocompleteIcon
18
- } from "./chunk-V6YCG642.mjs";
18
+ } from "./chunk-6OTUOEYS.mjs";
19
19
  import {
20
20
  AutocompleteDescendantsContextProvider,
21
21
  AutocompleteProvider,
22
22
  useAutocompleteContext
23
- } from "./chunk-WDQYM4FP.mjs";
23
+ } from "./chunk-ZNO5RUVT.mjs";
24
24
 
25
25
  // src/multi-autocomplete.tsx
26
26
  import {
@@ -33,7 +33,7 @@ import { Popover, PopoverTrigger } from "@yamada-ui/popover";
33
33
  import { Portal } from "@yamada-ui/portal";
34
34
  import { cx, handlerAll, runIfFunc } from "@yamada-ui/utils";
35
35
  import { cloneElement, useMemo } from "react";
36
- import { jsx, jsxs } from "react/jsx-runtime";
36
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
37
37
  var MultiAutocomplete = forwardRef(
38
38
  (props, ref) => {
39
39
  const [styles, mergedProps] = useComponentMultiStyle(
@@ -42,7 +42,6 @@ var MultiAutocomplete = forwardRef(
42
42
  );
43
43
  let {
44
44
  className,
45
- children,
46
45
  closeOnSelect = false,
47
46
  color,
48
47
  component,
@@ -70,7 +69,7 @@ var MultiAutocomplete = forwardRef(
70
69
  } = omitThemeProps(mergedProps);
71
70
  const {
72
71
  allowCreate,
73
- computedChildren,
72
+ children,
74
73
  descendants,
75
74
  inputValue,
76
75
  isEmpty,
@@ -84,7 +83,6 @@ var MultiAutocomplete = forwardRef(
84
83
  ...rest
85
84
  } = useAutocomplete({
86
85
  ...computedProps,
87
- children,
88
86
  closeOnSelect,
89
87
  defaultValue
90
88
  });
@@ -145,26 +143,17 @@ var MultiAutocomplete = forwardRef(
145
143
  ]
146
144
  }
147
145
  ),
148
- !isEmpty ? /* @__PURE__ */ jsx(Portal, { ...portalProps, children: /* @__PURE__ */ jsxs(
146
+ /* @__PURE__ */ jsx(Portal, { ...portalProps, children: /* @__PURE__ */ jsx(
149
147
  AutocompleteList,
150
148
  {
151
149
  footer: runIfFunc(footer, { value, onClose }),
152
150
  header: runIfFunc(header, { value, onClose }),
153
151
  contentProps,
154
152
  ...listProps,
155
- children: [
153
+ children: !isEmpty ? /* @__PURE__ */ jsxs(Fragment, { children: [
156
154
  allowCreate ? /* @__PURE__ */ jsx(AutocompleteCreate, { ...createProps }) : /* @__PURE__ */ jsx(AutocompleteEmpty, { ...emptyProps }),
157
- children != null ? children : computedChildren
158
- ]
159
- }
160
- ) }) : /* @__PURE__ */ jsx(Portal, { ...portalProps, children: /* @__PURE__ */ jsx(
161
- AutocompleteList,
162
- {
163
- footer: runIfFunc(footer, { value, onClose }),
164
- header: runIfFunc(header, { value, onClose }),
165
- contentProps,
166
- ...listProps,
167
- children: allowCreate && inputValue ? /* @__PURE__ */ jsx(AutocompleteCreate, { ...createProps }) : /* @__PURE__ */ jsx(AutocompleteEmpty, { ...emptyProps })
155
+ children
156
+ ] }) : allowCreate && inputValue ? /* @__PURE__ */ jsx(AutocompleteCreate, { ...createProps }) : /* @__PURE__ */ jsx(AutocompleteEmpty, { ...emptyProps })
168
157
  }
169
158
  ) })
170
159
  ]
@@ -234,11 +223,11 @@ var MultiAutocompleteField = forwardRef(
234
223
  ...styles.field,
235
224
  cursor: "text"
236
225
  };
226
+ if ((label == null ? void 0 : label.length) && component) css.py = "0.125rem";
237
227
  return /* @__PURE__ */ jsx(PopoverTrigger, { children: /* @__PURE__ */ jsxs(
238
228
  ui.div,
239
229
  {
240
230
  className: cx("ui-multi-autocomplete__field", className),
241
- py: (label == null ? void 0 : label.length) && component ? "0.125rem" : void 0,
242
231
  __css: css,
243
232
  ...rest,
244
233
  children: [
@@ -270,4 +259,4 @@ MultiAutocompleteField.__ui__ = "MultiAutocompleteField";
270
259
  export {
271
260
  MultiAutocomplete
272
261
  };
273
- //# sourceMappingURL=chunk-7LZUXESV.mjs.map
262
+ //# sourceMappingURL=chunk-HUY7Q3WA.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/multi-autocomplete.tsx"],"sourcesContent":["import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport type { MotionProps } from \"@yamada-ui/motion\"\nimport type { PortalProps } from \"@yamada-ui/portal\"\nimport type {\n CSSProperties,\n FC,\n MouseEventHandler,\n ReactElement,\n ReactNode,\n} from \"react\"\nimport type { AutocompleteCreateProps } from \"./autocomplete-create\"\nimport type { AutocompleteEmptyProps } from \"./autocomplete-empty\"\nimport type { AutocompleteIconProps } from \"./autocomplete-icon\"\nimport type { AutocompleteListProps } from \"./autocomplete-list\"\nimport type { UseAutocompleteProps } from \"./use-autocomplete\"\nimport {\n forwardRef,\n omitThemeProps,\n ui,\n useComponentMultiStyle,\n} from \"@yamada-ui/core\"\nimport { Popover, PopoverTrigger } from \"@yamada-ui/popover\"\nimport { Portal } from \"@yamada-ui/portal\"\nimport { cx, handlerAll, runIfFunc } from \"@yamada-ui/utils\"\nimport { cloneElement, useMemo } from \"react\"\nimport {\n AutocompleteDescendantsContextProvider,\n AutocompleteProvider,\n useAutocompleteContext,\n} from \"./autocomplete-context\"\nimport { AutocompleteCreate } from \"./autocomplete-create\"\nimport { AutocompleteEmpty } from \"./autocomplete-empty\"\nimport { AutocompleteClearIcon, AutocompleteIcon } from \"./autocomplete-icon\"\nimport { AutocompleteList } from \"./autocomplete-list\"\nimport { useAutocomplete, useAutocompleteInput } from \"./use-autocomplete\"\n\ninterface MultiAutocompleteOptions {\n /**\n * If `true`, the list element will be closed when value is selected.\n *\n * @default false\n */\n closeOnSelect?: boolean\n /**\n * The custom display value to use.\n */\n component?: FC<{\n index: number\n label: string\n value: number | string\n onRemove: MouseEventHandler<HTMLElement>\n }>\n /**\n * The border color when the input is invalid.\n */\n errorBorderColor?: string\n /**\n * The border color when the input is focused.\n */\n focusBorderColor?: string\n /**\n * The footer of the autocomplete content element.\n */\n footer?: FC<{ value: string[] | undefined; onClose: () => void }> | ReactNode\n /**\n * The header of the autocomplete content element.\n */\n header?: FC<{ value: string[] | undefined; onClose: () => void }> | ReactNode\n /**\n * If `true`, display the select clear icon.\n *\n * @default true\n */\n isClearable?: boolean\n /**\n * If `true`, keep the placeholder.\n *\n * @default false\n */\n keepPlaceholder?: boolean\n /**\n * The visual separator between each value.\n *\n * @default ','\n */\n separator?: string\n /**\n * Props for multi autocomplete clear icon element.\n */\n clearIconProps?: AutocompleteIconProps\n /**\n * Props for multi autocomplete container element.\n */\n containerProps?: Omit<HTMLUIProps, \"children\">\n /**\n * Props for multi autocomplete content element.\n */\n contentProps?: Omit<MotionProps, \"children\">\n /**\n * Props for autocomplete create element.\n */\n createProps?: Omit<AutocompleteCreateProps, \"children\">\n /**\n * Props for autocomplete empty element.\n */\n emptyProps?: Omit<AutocompleteEmptyProps, \"children\">\n /**\n * Props for multi autocomplete field element.\n */\n fieldProps?: Omit<\n MultiAutocompleteFieldProps,\n \"children\" | \"component\" | \"inputProps\" | \"keepPlaceholder\" | \"separator\"\n >\n /**\n * Props for multi autocomplete icon element.\n */\n iconProps?: AutocompleteIconProps\n /**\n * Props for multi autocomplete input element.\n */\n inputProps?: HTMLUIProps<\"input\">\n /**\n * Props for multi autocomplete list element.\n */\n listProps?: Omit<AutocompleteListProps, \"children\">\n /**\n * Props to be forwarded to the portal component.\n *\n * @default '{ isDisabled: true }'\n *\n */\n portalProps?: Omit<PortalProps, \"children\">\n}\n\nexport interface MultiAutocompleteProps\n extends ThemeProps<\"MultiAutocomplete\">,\n Omit<UseAutocompleteProps<string[]>, \"closeOnSelect\">,\n MultiAutocompleteOptions {}\n\n/**\n * `MultiAutocomplete` is a component used to display suggestions based on user text input and to obtain multiple values.\n *\n * @see Docs https://yamada-ui.com/components/forms/multi-autocomplete\n */\nexport const MultiAutocomplete = forwardRef<MultiAutocompleteProps, \"input\">(\n (props, ref) => {\n const [styles, mergedProps] = useComponentMultiStyle(\n \"MultiAutocomplete\",\n props,\n )\n let {\n className,\n closeOnSelect = false,\n color,\n component,\n defaultValue = [],\n footer,\n h,\n header,\n height,\n isClearable = true,\n keepPlaceholder = false,\n minH,\n minHeight,\n separator,\n clearIconProps,\n containerProps,\n contentProps,\n createProps,\n emptyProps,\n fieldProps,\n iconProps,\n inputProps,\n listProps,\n portalProps = { isDisabled: true },\n ...computedProps\n } = omitThemeProps(mergedProps)\n\n const {\n allowCreate,\n children,\n descendants,\n inputValue,\n isEmpty,\n value,\n formControlProps,\n getContainerProps,\n getFieldProps,\n getPopoverProps,\n onClear,\n onClose,\n ...rest\n } = useAutocomplete<string[]>({\n ...computedProps,\n closeOnSelect,\n defaultValue,\n })\n\n h ??= height\n minH ??= minHeight\n\n const css: CSSUIObject = {\n color,\n h: \"fit-content\",\n w: \"100%\",\n ...styles.container,\n }\n\n return (\n <AutocompleteDescendantsContextProvider value={descendants}>\n <AutocompleteProvider\n value={{\n ...rest,\n allowCreate,\n inputValue,\n isEmpty,\n styles,\n value,\n formControlProps,\n onClose,\n }}\n >\n <Popover {...getPopoverProps()}>\n <ui.div\n className={cx(\"ui-multi-autocomplete\", className)}\n __css={css}\n {...getContainerProps(containerProps)}\n >\n <ui.div\n className=\"ui-multi-autocomplete__inner\"\n __css={{ position: \"relative\", ...styles.inner }}\n >\n <MultiAutocompleteField\n component={component}\n h={h}\n keepPlaceholder={keepPlaceholder}\n minH={minH}\n separator={separator}\n inputProps={inputProps}\n {...getFieldProps(fieldProps, ref)}\n />\n\n {isClearable && value.length ? (\n <AutocompleteClearIcon\n {...clearIconProps}\n onClick={handlerAll(clearIconProps?.onClick, onClear)}\n {...formControlProps}\n />\n ) : (\n <AutocompleteIcon {...iconProps} {...formControlProps} />\n )}\n </ui.div>\n\n <Portal {...portalProps}>\n <AutocompleteList\n footer={runIfFunc(footer, { value, onClose })}\n header={runIfFunc(header, { value, onClose })}\n contentProps={contentProps}\n {...listProps}\n >\n {!isEmpty ? (\n <>\n {allowCreate ? (\n <AutocompleteCreate {...createProps} />\n ) : (\n <AutocompleteEmpty {...emptyProps} />\n )}\n\n {children}\n </>\n ) : allowCreate && inputValue ? (\n <AutocompleteCreate {...createProps} />\n ) : (\n <AutocompleteEmpty {...emptyProps} />\n )}\n </AutocompleteList>\n </Portal>\n </ui.div>\n </Popover>\n </AutocompleteProvider>\n </AutocompleteDescendantsContextProvider>\n )\n },\n)\n\nMultiAutocomplete.displayName = \"MultiAutocomplete\"\nMultiAutocomplete.__ui__ = \"MultiAutocomplete\"\n\ninterface MultiAutocompleteFieldProps\n extends HTMLUIProps,\n Pick<\n MultiAutocompleteProps,\n \"component\" | \"inputProps\" | \"keepPlaceholder\" | \"separator\"\n > {}\n\nconst MultiAutocompleteField = forwardRef<MultiAutocompleteFieldProps, \"input\">(\n (\n {\n className,\n component,\n h,\n keepPlaceholder,\n minH,\n placeholder,\n separator = \",\",\n inputProps,\n ...rest\n },\n ref,\n ) => {\n const { inputRef, inputValue, isOpen, label, styles, value, onChange } =\n useAutocompleteContext()\n\n const { getInputProps } = useAutocompleteInput()\n\n const cloneChildren = useMemo(() => {\n if (!label?.length) return null\n\n if (component) {\n return (label as string[]).map((label, index) => {\n if (!value[index]) return null\n\n const onRemove: MouseEventHandler<HTMLElement> = (ev) => {\n if (!value[index]) return\n\n ev.stopPropagation()\n\n onChange(value[index])\n\n if (inputRef.current) inputRef.current.focus()\n }\n\n const el = component({\n index,\n label,\n value: value[index],\n onRemove,\n })\n\n const style: CSSProperties = {\n marginBlockEnd: \"0.125rem\",\n marginBlockStart: \"0.125rem\",\n marginInlineEnd: \"0.25rem\",\n }\n\n return el\n ? cloneElement(el as ReactElement, { key: index, style })\n : null\n })\n } else {\n return (label as string[]).map((value, index) => {\n const isLast = label.length === index + 1\n\n return (\n <ui.span key={index} display=\"inline-block\" me=\"0.25rem\">\n {value}\n {!isLast || isOpen ? separator : null}\n </ui.span>\n )\n })\n }\n }, [label, component, value, onChange, isOpen, inputRef, separator])\n\n const css: CSSUIObject = {\n alignItems: \"center\",\n display: \"flex\",\n flexWrap: \"wrap\",\n h,\n minH,\n pe: \"2rem\",\n ...styles.field,\n cursor: \"text\",\n }\n\n if (label?.length && component) css.py = \"0.125rem\"\n\n return (\n <PopoverTrigger>\n <ui.div\n className={cx(\"ui-multi-autocomplete__field\", className)}\n __css={css}\n {...rest}\n >\n {cloneChildren}\n\n <ui.input\n className=\"ui-multi-autocomplete__field__input\"\n aria-label=\"Input value\"\n aria-multiselectable=\"true\"\n display=\"inline-block\"\n flex=\"1\"\n marginBlockEnd=\"0.125rem\"\n marginBlockStart=\"0.125rem\"\n minW=\"0px\"\n overflow=\"hidden\"\n placeholder={\n !label?.length || (keepPlaceholder && isOpen)\n ? placeholder\n : undefined\n }\n {...getInputProps({ ...inputProps, value: inputValue }, ref)}\n />\n </ui.div>\n </PopoverTrigger>\n )\n },\n)\n\nMultiAutocompleteField.displayName = \"MultiAutocompleteField\"\nMultiAutocompleteField.__ui__ = \"MultiAutocompleteField\"\n"],"mappings":"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","names":["label","value"]}
@@ -1,13 +1,13 @@
1
1
  "use client"
2
2
  import {
3
3
  useAutocompleteCreate
4
- } from "./chunk-6OLHNK7O.mjs";
4
+ } from "./chunk-ZXALWDKQ.mjs";
5
5
  import {
6
6
  AutocompleteItemIcon
7
- } from "./chunk-V6YCG642.mjs";
7
+ } from "./chunk-6OTUOEYS.mjs";
8
8
  import {
9
9
  useAutocompleteContext
10
- } from "./chunk-WDQYM4FP.mjs";
10
+ } from "./chunk-ZNO5RUVT.mjs";
11
11
 
12
12
  // src/autocomplete-create.tsx
13
13
  import { forwardRef, ui } from "@yamada-ui/core";
@@ -60,4 +60,4 @@ AutocompletePlusIcon.__ui__ = "AutocompletePlusIcon";
60
60
  export {
61
61
  AutocompleteCreate
62
62
  };
63
- //# sourceMappingURL=chunk-K5HCHHCJ.mjs.map
63
+ //# sourceMappingURL=chunk-J6UKIKNL.mjs.map
@@ -1,13 +1,13 @@
1
1
  "use client"
2
2
  import {
3
3
  useAutocompleteOption
4
- } from "./chunk-6OLHNK7O.mjs";
4
+ } from "./chunk-ZXALWDKQ.mjs";
5
5
  import {
6
6
  AutocompleteItemIcon
7
- } from "./chunk-V6YCG642.mjs";
7
+ } from "./chunk-6OTUOEYS.mjs";
8
8
  import {
9
9
  useAutocompleteContext
10
- } from "./chunk-WDQYM4FP.mjs";
10
+ } from "./chunk-ZNO5RUVT.mjs";
11
11
 
12
12
  // src/autocomplete-option.tsx
13
13
  import { forwardRef, ui } from "@yamada-ui/core";
@@ -60,4 +60,4 @@ AutocompleteCheckIcon.__ui__ = "AutocompleteCheckIcon";
60
60
  export {
61
61
  AutocompleteOption
62
62
  };
63
- //# sourceMappingURL=chunk-AIBJWPRA.mjs.map
63
+ //# sourceMappingURL=chunk-KWIJUSLC.mjs.map
@@ -2,24 +2,24 @@
2
2
  import {
3
3
  useAutocomplete,
4
4
  useAutocompleteInput
5
- } from "./chunk-WERCEZNJ.mjs";
5
+ } from "./chunk-352YZTOO.mjs";
6
6
  import {
7
7
  AutocompleteCreate
8
- } from "./chunk-K5HCHHCJ.mjs";
8
+ } from "./chunk-J6UKIKNL.mjs";
9
9
  import {
10
10
  AutocompleteEmpty
11
- } from "./chunk-2HJUFFCU.mjs";
11
+ } from "./chunk-PKRO525W.mjs";
12
12
  import {
13
13
  AutocompleteList
14
- } from "./chunk-VTBUO5SK.mjs";
14
+ } from "./chunk-WJ4P4B2E.mjs";
15
15
  import {
16
16
  AutocompleteIcon
17
- } from "./chunk-V6YCG642.mjs";
17
+ } from "./chunk-6OTUOEYS.mjs";
18
18
  import {
19
19
  AutocompleteDescendantsContextProvider,
20
20
  AutocompleteProvider,
21
21
  useAutocompleteContext
22
- } from "./chunk-WDQYM4FP.mjs";
22
+ } from "./chunk-ZNO5RUVT.mjs";
23
23
 
24
24
  // src/autocomplete.tsx
25
25
  import {
@@ -31,13 +31,12 @@ import {
31
31
  import { Popover, PopoverTrigger } from "@yamada-ui/popover";
32
32
  import { Portal } from "@yamada-ui/portal";
33
33
  import { cx, runIfFunc } from "@yamada-ui/utils";
34
- import { jsx, jsxs } from "react/jsx-runtime";
34
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
35
35
  var Autocomplete = forwardRef(
36
36
  (props, ref) => {
37
37
  const [styles, mergedProps] = useComponentMultiStyle("Autocomplete", props);
38
38
  let {
39
39
  className,
40
- children,
41
40
  color,
42
41
  defaultValue = "",
43
42
  footer,
@@ -59,7 +58,7 @@ var Autocomplete = forwardRef(
59
58
  } = omitThemeProps(mergedProps);
60
59
  const {
61
60
  allowCreate,
62
- computedChildren,
61
+ children,
63
62
  descendants,
64
63
  inputValue,
65
64
  isEmpty,
@@ -70,7 +69,7 @@ var Autocomplete = forwardRef(
70
69
  getPopoverProps,
71
70
  onClose,
72
71
  ...rest
73
- } = useAutocomplete({ ...computedProps, children, defaultValue });
72
+ } = useAutocomplete({ ...computedProps, defaultValue });
74
73
  h != null ? h : h = height;
75
74
  minH != null ? minH : minH = minHeight;
76
75
  const css = {
@@ -118,26 +117,17 @@ var Autocomplete = forwardRef(
118
117
  ]
119
118
  }
120
119
  ),
121
- !isEmpty ? /* @__PURE__ */ jsx(Portal, { ...portalProps, children: /* @__PURE__ */ jsxs(
120
+ /* @__PURE__ */ jsx(Portal, { ...portalProps, children: /* @__PURE__ */ jsx(
122
121
  AutocompleteList,
123
122
  {
124
123
  footer: runIfFunc(footer, { value, onClose }),
125
124
  header: runIfFunc(header, { value, onClose }),
126
125
  contentProps,
127
126
  ...listProps,
128
- children: [
127
+ children: !isEmpty ? /* @__PURE__ */ jsxs(Fragment, { children: [
129
128
  allowCreate ? /* @__PURE__ */ jsx(AutocompleteCreate, { ...createProps }) : /* @__PURE__ */ jsx(AutocompleteEmpty, { ...emptyProps }),
130
- children != null ? children : computedChildren
131
- ]
132
- }
133
- ) }) : /* @__PURE__ */ jsx(Portal, { ...portalProps, children: /* @__PURE__ */ jsx(
134
- AutocompleteList,
135
- {
136
- footer: runIfFunc(footer, { value, onClose }),
137
- header: runIfFunc(header, { value, onClose }),
138
- contentProps,
139
- ...listProps,
140
- children: allowCreate && inputValue ? /* @__PURE__ */ jsx(AutocompleteCreate, { ...createProps }) : /* @__PURE__ */ jsx(AutocompleteEmpty, { ...emptyProps })
129
+ children
130
+ ] }) : allowCreate && inputValue ? /* @__PURE__ */ jsx(AutocompleteCreate, { ...createProps }) : /* @__PURE__ */ jsx(AutocompleteEmpty, { ...emptyProps })
141
131
  }
142
132
  ) })
143
133
  ]
@@ -191,4 +181,4 @@ AutocompleteField.__ui__ = "AutocompleteField";
191
181
  export {
192
182
  Autocomplete
193
183
  };
194
- //# sourceMappingURL=chunk-Q33EMTO2.mjs.map
184
+ //# sourceMappingURL=chunk-OY5JVCQQ.mjs.map