@sproutsocial/seeds-react-menu 1.2.1 → 1.2.3

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.
package/dist/index.js CHANGED
@@ -127,7 +127,6 @@ __export(index_exports, {
127
127
  MenuLabel: () => MenuLabel,
128
128
  MenuPopout: () => MenuPopout,
129
129
  MenuRoot: () => MenuRoot,
130
- MenuRootNoPopout: () => MenuRootNoPopout,
131
130
  MenuSearchInput: () => MenuSearchInput,
132
131
  MenuSearchTokenInput: () => MenuSearchTokenInput,
133
132
  MenuToggleButton: () => MenuToggleButton,
@@ -2708,12 +2707,6 @@ var MenuRoot = ({
2708
2707
  setFinalWidth(min_width);
2709
2708
  }
2710
2709
  }, [width2, toggleElementRef.current?.offsetWidth]);
2711
- (0, import_react10.useEffect)(() => {
2712
- if (!inputValue) return;
2713
- if (items && hiddenItemsCount >= items.length && isOpen) {
2714
- closeMenu?.();
2715
- }
2716
- }, [hiddenItemsCount, items?.length, isOpen, inputValue]);
2717
2710
  const menuContext = useMenu(contextProps);
2718
2711
  getMenuProps?.({}, { suppressRefError: true });
2719
2712
  return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
@@ -2743,32 +2736,36 @@ var MenuRoot = ({
2743
2736
  }
2744
2737
  );
2745
2738
  };
2746
- var MenuRootNoPopout = ({
2747
- children,
2748
- menuToggleElement,
2749
- ...contextProps
2750
- }) => {
2751
- const menuContext = useMenu(contextProps);
2752
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(MenuContentProvider, { menuContext, children });
2753
- };
2754
2739
 
2755
2740
  // src/MenuLabel.tsx
2756
2741
  var import_react11 = require("react");
2757
2742
  var import_seeds_react_label = require("@sproutsocial/seeds-react-label");
2758
- var import_jsx_runtime11 = require("react/jsx-runtime");
2759
- var MenuLabel = ({ children, ...rest }) => {
2743
+ var import_jsx_runtime11 = (
2744
+ // This fallback id should never be used, but it is here to satisfy TypeScript since getLabelProps could be undefined.
2745
+ require("react/jsx-runtime")
2746
+ );
2747
+ var MenuLabel = ({
2748
+ children,
2749
+ required = false,
2750
+ ...rest
2751
+ }) => {
2760
2752
  const { getLabelProps } = useMenuToggleContext();
2761
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_seeds_react_label.Label, { htmlFor: "fallback_menu_label", ...getLabelProps?.(), ...rest, children });
2753
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2754
+ import_seeds_react_label.Label,
2755
+ {
2756
+ htmlFor: "fallback_menu_label",
2757
+ required,
2758
+ ...getLabelProps?.(),
2759
+ ...rest,
2760
+ children
2761
+ }
2762
+ );
2762
2763
  };
2763
2764
 
2764
2765
  // src/MenuToggleButton/MenuToggleButton.tsx
2765
- var import_react12 = require("react");
2766
2766
  var import_seeds_react_button = require("@sproutsocial/seeds-react-button");
2767
2767
  var import_jsx_runtime12 = require("react/jsx-runtime");
2768
- var MenuToggleButton = ({
2769
- children,
2770
- ...rest
2771
- }) => {
2768
+ var MenuToggleButton = (props) => {
2772
2769
  const { getToggleButtonProps, isListbox, getDropdownProps, ref, ariaProps } = useMenuToggleContext();
2773
2770
  return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2774
2771
  import_seeds_react_button.Button,
@@ -2781,18 +2778,17 @@ var MenuToggleButton = ({
2781
2778
  ...ariaProps,
2782
2779
  ...isListbox ? {} : { role: "button", "aria-haspopup": "menu" }
2783
2780
  }),
2784
- ...rest,
2785
- children
2781
+ ...props
2786
2782
  }
2787
2783
  );
2788
2784
  };
2789
2785
 
2790
2786
  // src/MenuSearchInput/MenuSearchInput.tsx
2791
- var import_react14 = __toESM(require("react"));
2787
+ var import_react13 = __toESM(require("react"));
2792
2788
  var import_seeds_react_input = require("@sproutsocial/seeds-react-input");
2793
2789
 
2794
2790
  // src/hooks/useItemFiltering.tsx
2795
- var import_react13 = __toESM(require("react"));
2791
+ var import_react12 = __toESM(require("react"));
2796
2792
 
2797
2793
  // src/utils/downshiftDefaults.ts
2798
2794
  var itemToString = (item) => {
@@ -2812,8 +2808,8 @@ var useItemFiltering = ({
2812
2808
  getShouldFilter = defaultGetShouldFilter,
2813
2809
  setHiddenItemsMap: setHiddenItemsMapProp
2814
2810
  }) => {
2815
- const [hiddenItemsMap, setHiddenItemsMap] = import_react13.default.useState({});
2816
- const updateFilteredItems = import_react13.default.useCallback(
2811
+ const [hiddenItemsMap, setHiddenItemsMap] = import_react12.default.useState({});
2812
+ const updateFilteredItems = import_react12.default.useCallback(
2817
2813
  ({ inputValue }) => {
2818
2814
  const newHiddenItems = getShouldFilter({ inputValue }) ? allMenuItems.reduce((map, item) => {
2819
2815
  const isItemVisible = getIsItemVisible(item, inputValue);
@@ -2850,11 +2846,11 @@ var MenuSearchInput = ({
2850
2846
  getIsItemVisible,
2851
2847
  setHiddenItemsMap
2852
2848
  });
2853
- import_react14.default.useEffect(() => {
2849
+ import_react13.default.useEffect(() => {
2854
2850
  updateFilteredItems({ inputValue: restInputProps.value || "" });
2855
2851
  }, [isOpen, restInputProps.value]);
2856
2852
  const toggleButtonProps = getToggleButtonProps?.() || {};
2857
- const handleKeyDown = import_react14.default.useCallback(
2853
+ const handleKeyDown = import_react13.default.useCallback(
2858
2854
  (e) => {
2859
2855
  if (e.key === " ") return;
2860
2856
  toggleButtonProps.onKeyDown?.(e);
@@ -2881,7 +2877,7 @@ var MenuSearchInput = ({
2881
2877
  };
2882
2878
 
2883
2879
  // src/MenuTokenInput.tsx
2884
- var import_react15 = __toESM(require("react"));
2880
+ var import_react14 = __toESM(require("react"));
2885
2881
  var import_styled_components11 = __toESM(require("styled-components"));
2886
2882
  var import_seeds_react_token_input = require("@sproutsocial/seeds-react-token-input");
2887
2883
  var import_jsx_runtime14 = require("react/jsx-runtime");
@@ -2914,7 +2910,7 @@ var MenuTokenInput = ({
2914
2910
  removeSelectedItem,
2915
2911
  setActiveIndex,
2916
2912
  selectedItems = []
2917
- } = import_react15.default.useContext(MenuContext);
2913
+ } = import_react14.default.useContext(MenuContext);
2918
2914
  const removeToken = (tokenId) => {
2919
2915
  const tokenToRemove = selectedItems?.find((item) => item.id === tokenId);
2920
2916
  tokenToRemove && removeSelectedItem?.(tokenToRemove);
@@ -2968,7 +2964,7 @@ var MenuTokenInput = ({
2968
2964
  };
2969
2965
 
2970
2966
  // src/MenuSearchTokenInput/MenuSearchTokenInput.tsx
2971
- var import_react16 = __toESM(require("react"));
2967
+ var import_react15 = __toESM(require("react"));
2972
2968
  var import_jsx_runtime15 = require("react/jsx-runtime");
2973
2969
  var MenuSearchTokenInput = ({
2974
2970
  getIsItemVisible,
@@ -2992,10 +2988,10 @@ var MenuSearchTokenInput = ({
2992
2988
  setHiddenItemsMap
2993
2989
  });
2994
2990
  const controlledValue = value || inputPropsValue !== void 0 ? `${inputPropsValue}` : void 0;
2995
- const [internalValue, setInternalValue] = import_react16.default.useState(
2991
+ const [internalValue, setInternalValue] = import_react15.default.useState(
2996
2992
  controlledValue || ""
2997
2993
  );
2998
- const updateFilteredState = import_react16.default.useCallback(
2994
+ const updateFilteredState = import_react15.default.useCallback(
2999
2995
  // defaults to an empty string if no value is passed
3000
2996
  (value2 = "") => {
3001
2997
  setInternalValue(value2);
@@ -3003,14 +2999,14 @@ var MenuSearchTokenInput = ({
3003
2999
  },
3004
3000
  [updateFilteredItems]
3005
3001
  );
3006
- import_react16.default.useEffect(() => {
3002
+ import_react15.default.useEffect(() => {
3007
3003
  updateFilteredState(controlledValue);
3008
3004
  }, [controlledValue]);
3009
- import_react16.default.useEffect(() => {
3005
+ import_react15.default.useEffect(() => {
3010
3006
  updateFilteredState(controlledValue);
3011
3007
  }, [isOpen]);
3012
3008
  const toggleButtonProps = getToggleButtonProps?.() || {};
3013
- const handleKeyDown = import_react16.default.useCallback(
3009
+ const handleKeyDown = import_react15.default.useCallback(
3014
3010
  (e) => {
3015
3011
  if (e.key === " ") return;
3016
3012
  toggleButtonProps.onKeyDown?.(e);
@@ -3038,7 +3034,7 @@ var MenuSearchTokenInput = ({
3038
3034
  };
3039
3035
 
3040
3036
  // src/SubmenuItem/SubmenuItem.tsx
3041
- var import_react17 = __toESM(require("react"));
3037
+ var import_react16 = __toESM(require("react"));
3042
3038
  var import_seeds_react_icon2 = require("@sproutsocial/seeds-react-icon");
3043
3039
  var import_seeds_react_box3 = require("@sproutsocial/seeds-react-box");
3044
3040
  var import_seeds_react_utilities2 = require("@sproutsocial/seeds-react-utilities");
@@ -3100,17 +3096,17 @@ var SubmenuItem = ({
3100
3096
  itemsMap,
3101
3097
  isOpen: parentIsOpen
3102
3098
  } = useMenuContentContext();
3103
- const [submenuIsFocused, setSubmenuIsFocused] = import_react17.default.useState(false);
3104
- const [submenuIsOpen, setSubmenuIsOpen] = import_react17.default.useState(false);
3105
- const [submenuIsActive, setSubmenuIsActive] = import_react17.default.useState(false);
3106
- const submenuItemRef = import_react17.default.useRef(null);
3107
- const submenuRef = import_react17.default.useRef(null);
3099
+ const [submenuIsFocused, setSubmenuIsFocused] = import_react16.default.useState(false);
3100
+ const [submenuIsOpen, setSubmenuIsOpen] = import_react16.default.useState(false);
3101
+ const [submenuIsActive, setSubmenuIsActive] = import_react16.default.useState(false);
3102
+ const submenuItemRef = import_react16.default.useRef(null);
3103
+ const submenuRef = import_react16.default.useRef(null);
3108
3104
  const menuContent = menuItems ? getChildrenFromMenuItems({ menuItems, MenuItemComponent }) : menuChildren;
3109
3105
  const item = itemsMap[id] || {
3110
3106
  index: 0,
3111
3107
  id
3112
3108
  };
3113
- import_react17.default.useEffect(() => {
3109
+ import_react16.default.useEffect(() => {
3114
3110
  if (highlightedIndex === item.index) {
3115
3111
  !submenuIsOpen && setSubmenuIsOpen(true);
3116
3112
  } else if (submenuIsOpen && highlightedIndex !== -1) {
@@ -3118,7 +3114,7 @@ var SubmenuItem = ({
3118
3114
  setSubmenuIsActive(false);
3119
3115
  }
3120
3116
  }, [highlightedIndex, item.index, submenuIsOpen, setSubmenuIsOpen]);
3121
- const onSubmenuStateChange = import_react17.default.useCallback(
3117
+ const onSubmenuStateChange = import_react16.default.useCallback(
3122
3118
  (state) => {
3123
3119
  if (state.isOpen !== void 0) {
3124
3120
  setSubmenuIsOpen(state.isOpen);
@@ -3162,7 +3158,7 @@ var SubmenuItem = ({
3162
3158
  onMenuItemClick();
3163
3159
  }
3164
3160
  };
3165
- import_react17.default.useEffect(() => {
3161
+ import_react16.default.useEffect(() => {
3166
3162
  if (document && document.body) {
3167
3163
  document.body.addEventListener("click", onBodyClick, {
3168
3164
  capture: true
@@ -3266,11 +3262,11 @@ var ListboxToggleButton = ({
3266
3262
  };
3267
3263
 
3268
3264
  // src/ActionMenu/ActionMenu.tsx
3269
- var import_react19 = __toESM(require("react"));
3265
+ var import_react18 = __toESM(require("react"));
3270
3266
  var import_downshift3 = require("downshift");
3271
3267
 
3272
3268
  // src/hooks/useDownshiftDefaults.tsx
3273
- var import_react18 = __toESM(require("react"));
3269
+ var import_react17 = __toESM(require("react"));
3274
3270
 
3275
3271
  // src/reducers/useComboboxStateReducer.tsx
3276
3272
  var import_downshift = require("downshift");
@@ -3394,12 +3390,12 @@ var useDownshiftDefaults = ({
3394
3390
  isMulti = false,
3395
3391
  multiSelectProps = {}
3396
3392
  } = {}) => {
3397
- const [hiddenItemsMap, setHiddenItemsMap] = import_react18.default.useState({});
3398
- const hiddenItemsCount = import_react18.default.useMemo(
3393
+ const [hiddenItemsMap, setHiddenItemsMap] = import_react17.default.useState({});
3394
+ const hiddenItemsCount = import_react17.default.useMemo(
3399
3395
  () => Object.keys(hiddenItemsMap).filter(Boolean).length,
3400
3396
  [hiddenItemsMap]
3401
3397
  );
3402
- const isItemDisabled = import_react18.default.useCallback(
3398
+ const isItemDisabled = import_react17.default.useCallback(
3403
3399
  (item) => Boolean(item.disabled || hiddenItemsMap[item.id]),
3404
3400
  [hiddenItemsMap]
3405
3401
  );
@@ -3478,7 +3474,7 @@ var ActionMenu = ({
3478
3474
  const { defaultDownshiftProps, ...restDefaults } = useDownshiftDefaults({
3479
3475
  isCombobox: false
3480
3476
  });
3481
- const [currentSelectedItem, setCurrentSelectedItem] = import_react19.default.useState(null);
3477
+ const [currentSelectedItem, setCurrentSelectedItem] = import_react18.default.useState(null);
3482
3478
  const { isOpen, ...useSelectReturnProps } = (0, import_downshift3.useSelect)({
3483
3479
  ...defaultDownshiftProps.select,
3484
3480
  items: allMenuItems,
@@ -3490,7 +3486,7 @@ var ActionMenu = ({
3490
3486
  ),
3491
3487
  ...useSelectProps
3492
3488
  });
3493
- (0, import_react19.useEffect)(() => {
3489
+ (0, import_react18.useEffect)(() => {
3494
3490
  setCurrentSelectedItem(useSelectReturnProps.selectedItem);
3495
3491
  }, [useSelectReturnProps.selectedItem]);
3496
3492
  return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
@@ -3512,7 +3508,7 @@ var ActionMenu = ({
3512
3508
  };
3513
3509
 
3514
3510
  // src/SingleSelectMenu/SingleSelectMenu.tsx
3515
- var import_react20 = require("react");
3511
+ var import_react19 = require("react");
3516
3512
  var import_downshift4 = require("downshift");
3517
3513
  var import_jsx_runtime19 = require("react/jsx-runtime");
3518
3514
  var SingleSelectMenu = ({
@@ -3560,7 +3556,7 @@ var SingleSelectMenu = ({
3560
3556
  };
3561
3557
 
3562
3558
  // src/MultiSelectMenu/MultiSelectMenu.tsx
3563
- var import_react21 = require("react");
3559
+ var import_react20 = require("react");
3564
3560
  var import_downshift5 = require("downshift");
3565
3561
  var import_jsx_runtime20 = require("react/jsx-runtime");
3566
3562
  var MultiSelectMenu = ({
@@ -3663,10 +3659,10 @@ var MultiSelectMenu = ({
3663
3659
  };
3664
3660
 
3665
3661
  // src/Autocomplete/Autocomplete.tsx
3666
- var import_react24 = require("react");
3662
+ var import_react23 = require("react");
3667
3663
 
3668
3664
  // src/Autocomplete/SingleAutocomplete.tsx
3669
- var import_react22 = require("react");
3665
+ var import_react21 = __toESM(require("react"));
3670
3666
  var import_downshift6 = require("downshift");
3671
3667
  var import_jsx_runtime21 = require("react/jsx-runtime");
3672
3668
  var SingleAutocomplete = ({
@@ -3684,14 +3680,15 @@ var SingleAutocomplete = ({
3684
3680
  menuItems,
3685
3681
  MenuItemComponent
3686
3682
  });
3687
- const { setHiddenItemsMap, defaultDownshiftProps, ...restDefaults } = useDownshiftDefaults({ isCombobox: true });
3683
+ const downshiftDefaults = useDownshiftDefaults({ isCombobox: true });
3684
+ const { setHiddenItemsMap, defaultDownshiftProps, hiddenItemsCount } = downshiftDefaults;
3688
3685
  const { updateFilteredItems } = useItemFiltering({
3689
3686
  allMenuItems,
3690
3687
  itemToString: itemToString2,
3691
3688
  getIsItemVisible,
3692
3689
  setHiddenItemsMap
3693
3690
  });
3694
- const { isOpen, ...useComboboxReturnProps } = (0, import_downshift6.useCombobox)({
3691
+ const useComboboxReturnProps = (0, import_downshift6.useCombobox)({
3695
3692
  ...defaultDownshiftProps.combobox,
3696
3693
  items: allMenuItems,
3697
3694
  itemToString: itemToString2,
@@ -3702,6 +3699,13 @@ var SingleAutocomplete = ({
3702
3699
  ),
3703
3700
  ...useComboboxProps
3704
3701
  });
3702
+ const { isOpen, closeMenu, inputValue } = useComboboxReturnProps;
3703
+ import_react21.default.useEffect(() => {
3704
+ if (!inputValue) return;
3705
+ if (allMenuItems && hiddenItemsCount >= allMenuItems.length && isOpen) {
3706
+ closeMenu?.();
3707
+ }
3708
+ }, [hiddenItemsCount, allMenuItems?.length, isOpen, inputValue]);
3705
3709
  return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3706
3710
  MenuRootComponent,
3707
3711
  {
@@ -3709,11 +3713,9 @@ var SingleAutocomplete = ({
3709
3713
  isListbox: true,
3710
3714
  items: allMenuItems,
3711
3715
  itemToString: itemToString2,
3712
- isOpen,
3713
- setHiddenItemsMap,
3714
3716
  ...useComboboxProps,
3715
3717
  ...useComboboxReturnProps,
3716
- ...restDefaults
3718
+ ...downshiftDefaults
3717
3719
  },
3718
3720
  popoutProps: {
3719
3721
  focusOnContent: false
@@ -3724,7 +3726,7 @@ var SingleAutocomplete = ({
3724
3726
  };
3725
3727
 
3726
3728
  // src/Autocomplete/MultiAutocomplete.tsx
3727
- var import_react23 = __toESM(require("react"));
3729
+ var import_react22 = __toESM(require("react"));
3728
3730
  var import_downshift7 = require("downshift");
3729
3731
  var import_jsx_runtime22 = require("react/jsx-runtime");
3730
3732
  var MultiAutocomplete = ({
@@ -3750,21 +3752,21 @@ var MultiAutocomplete = ({
3750
3752
  menuItems,
3751
3753
  MenuItemComponent
3752
3754
  });
3753
- const [selectedItems, setSelectedItems] = import_react23.default.useState(initialSelectedItems);
3754
- const [selectedItemIds, setSelectedItemIds] = import_react23.default.useState(getSelectedItemIds(initialSelectedItems));
3755
- const getIsItemVisibleMulti = import_react23.default.useCallback(
3756
- (item, inputValue) => {
3757
- return (showSelectedItemsInDropdown || !selectedItemIds[item.id]) && getIsItemVisible(item, inputValue);
3755
+ const [selectedItems, setSelectedItems] = import_react22.default.useState(initialSelectedItems);
3756
+ const [selectedItemIds, setSelectedItemIds] = import_react22.default.useState(getSelectedItemIds(initialSelectedItems));
3757
+ const getIsItemVisibleMulti = import_react22.default.useCallback(
3758
+ (item, inputValue2) => {
3759
+ return (showSelectedItemsInDropdown || !selectedItemIds[item.id]) && getIsItemVisible(item, inputValue2);
3758
3760
  },
3759
3761
  [selectedItemIds, showSelectedItemsInDropdown, getIsItemVisible]
3760
3762
  );
3761
- const getShouldFilterMulti = import_react23.default.useCallback(
3763
+ const getShouldFilterMulti = import_react22.default.useCallback(
3762
3764
  (args) => {
3763
3765
  return !showSelectedItemsInDropdown && Object.keys(selectedItemIds).length > 0 || defaultGetShouldFilter(args);
3764
3766
  },
3765
3767
  [selectedItemIds, showSelectedItemsInDropdown, getIsItemVisible]
3766
3768
  );
3767
- const { setHiddenItemsMap, defaultDownshiftProps, ...restDefaults } = useDownshiftDefaults({
3769
+ const downshiftDefaults = useDownshiftDefaults({
3768
3770
  isCombobox: true,
3769
3771
  isMulti: true,
3770
3772
  // handles the prop name mapping for multi select
@@ -3775,6 +3777,7 @@ var MultiAutocomplete = ({
3775
3777
  ...useComboboxProps
3776
3778
  }
3777
3779
  });
3780
+ const { setHiddenItemsMap, defaultDownshiftProps, hiddenItemsCount } = downshiftDefaults;
3778
3781
  const { updateFilteredItems } = useItemFiltering({
3779
3782
  allMenuItems,
3780
3783
  itemToString: itemToString2,
@@ -3782,7 +3785,7 @@ var MultiAutocomplete = ({
3782
3785
  getShouldFilter: getShouldFilterMulti,
3783
3786
  setHiddenItemsMap
3784
3787
  });
3785
- import_react23.default.useEffect(() => {
3788
+ import_react22.default.useEffect(() => {
3786
3789
  updateFilteredItems({ inputValue: "" });
3787
3790
  }, [selectedItemIds]);
3788
3791
  const useMultipleSelectionReturnProps = (0, import_downshift7.useMultipleSelection)({
@@ -3795,7 +3798,7 @@ var MultiAutocomplete = ({
3795
3798
  onSelectedItemsChange && onSelectedItemsChange({ selectedItems: selectedItems2, ...changes });
3796
3799
  }
3797
3800
  });
3798
- const { isOpen, ...useComboboxReturnProps } = (0, import_downshift7.useCombobox)({
3801
+ const useComboboxReturnProps = (0, import_downshift7.useCombobox)({
3799
3802
  ...defaultDownshiftProps.combobox,
3800
3803
  items: allMenuItems,
3801
3804
  itemToString: itemToString2,
@@ -3805,7 +3808,7 @@ var MultiAutocomplete = ({
3805
3808
  externalStateReducer
3806
3809
  ),
3807
3810
  onStateChange(changes) {
3808
- const { type, selectedItem: newSelectedItem, inputValue } = changes;
3811
+ const { type, selectedItem: newSelectedItem, inputValue: inputValue2 } = changes;
3809
3812
  switch (type) {
3810
3813
  // Add the selected item to the selected items list
3811
3814
  case import_downshift7.useCombobox.stateChangeTypes.InputKeyDownEnter:
@@ -3826,11 +3829,18 @@ var MultiAutocomplete = ({
3826
3829
  default:
3827
3830
  break;
3828
3831
  }
3829
- if (inputValue !== void 0) updateFilteredItems({ inputValue });
3832
+ if (inputValue2 !== void 0) updateFilteredItems({ inputValue: inputValue2 });
3830
3833
  onStateChange && onStateChange(changes);
3831
3834
  },
3832
3835
  ...useComboboxProps
3833
3836
  });
3837
+ const { isOpen, closeMenu, inputValue } = useComboboxReturnProps;
3838
+ import_react22.default.useEffect(() => {
3839
+ if (!inputValue) return;
3840
+ if (allMenuItems && hiddenItemsCount >= allMenuItems.length && isOpen) {
3841
+ closeMenu?.();
3842
+ }
3843
+ }, [hiddenItemsCount, allMenuItems?.length, isOpen, inputValue]);
3834
3844
  return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3835
3845
  MenuRootComponent,
3836
3846
  {
@@ -3838,18 +3848,16 @@ var MultiAutocomplete = ({
3838
3848
  isListbox: true,
3839
3849
  items: allMenuItems,
3840
3850
  itemToString: itemToString2,
3841
- isOpen,
3842
3851
  initialSelectedItems,
3843
3852
  onStateChange,
3844
3853
  onSelectedItemsChange,
3845
3854
  getA11yMultiStatusMessage,
3846
3855
  onMultiSelectStateChange,
3847
3856
  multiSelectStateReducer,
3848
- setHiddenItemsMap,
3849
3857
  ...useComboboxProps,
3850
3858
  ...useComboboxReturnProps,
3851
3859
  ...useMultipleSelectionReturnProps,
3852
- ...restDefaults
3860
+ ...downshiftDefaults
3853
3861
  },
3854
3862
  popoutProps: {
3855
3863
  focusOnContent: false
@@ -3862,7 +3870,7 @@ var MultiAutocomplete = ({
3862
3870
  // src/Autocomplete/Autocomplete.tsx
3863
3871
  var import_jsx_runtime23 = require("react/jsx-runtime");
3864
3872
  var Autocomplete = ({
3865
- multiSelect,
3873
+ multiSelect = false,
3866
3874
  ...rest
3867
3875
  }) => {
3868
3876
  if (multiSelect) {
@@ -3872,7 +3880,7 @@ var Autocomplete = ({
3872
3880
  };
3873
3881
 
3874
3882
  // src/Autocomplete/AutocompleteInput.tsx
3875
- var import_react25 = require("react");
3883
+ var import_react24 = require("react");
3876
3884
  var import_seeds_react_input2 = require("@sproutsocial/seeds-react-input");
3877
3885
  var import_jsx_runtime24 = require("react/jsx-runtime");
3878
3886
  var AutocompleteInput = ({
@@ -3910,7 +3918,7 @@ var AutocompleteInput = ({
3910
3918
  };
3911
3919
 
3912
3920
  // src/Autocomplete/AutocompleteTokenInput.tsx
3913
- var import_react26 = require("react");
3921
+ var import_react25 = require("react");
3914
3922
  var import_jsx_runtime25 = require("react/jsx-runtime");
3915
3923
  var AutocompleteTokenInput = ({
3916
3924
  onKeyDown,
@@ -3954,7 +3962,7 @@ var AutocompleteTokenInput = ({
3954
3962
 
3955
3963
  // src/Autocomplete/AutocompleteSelect.tsx
3956
3964
  var import_seeds_react_icon4 = __toESM(require("@sproutsocial/seeds-react-icon"));
3957
- var import_react27 = require("react");
3965
+ var import_react26 = require("react");
3958
3966
  var import_styled_components13 = __toESM(require("styled-components"));
3959
3967
  var import_seeds_react_input3 = require("@sproutsocial/seeds-react-input");
3960
3968
  var import_jsx_runtime26 = require("react/jsx-runtime");
@@ -3974,8 +3982,8 @@ var AutocompleteSelect = (props) => {
3974
3982
  };
3975
3983
 
3976
3984
  // src/NestedMenu/NestedMenu.tsx
3977
- var import_react33 = require("react");
3978
- var import_react34 = require("motion/react");
3985
+ var import_react32 = require("react");
3986
+ var import_react33 = require("motion/react");
3979
3987
  var import_downshift9 = require("downshift");
3980
3988
 
3981
3989
  // src/reducers/nestedMenuStateReducer.tsx
@@ -4003,7 +4011,7 @@ var nestedMenuStateReducer = (_state, actionAndChanges) => {
4003
4011
  };
4004
4012
 
4005
4013
  // src/NestedMenu/NestedMenuContext.tsx
4006
- var import_react28 = require("react");
4014
+ var import_react27 = require("react");
4007
4015
  var import_jsx_runtime27 = require("react/jsx-runtime");
4008
4016
  var defaultNestedMenuContext = {
4009
4017
  selectedMenuPath: [],
@@ -4021,7 +4029,7 @@ var defaultNestedMenuContext = {
4021
4029
  },
4022
4030
  animationSpeed: MOTION_DURATION_FAST
4023
4031
  };
4024
- var NestedMenuContext = (0, import_react28.createContext)(
4032
+ var NestedMenuContext = (0, import_react27.createContext)(
4025
4033
  defaultNestedMenuContext
4026
4034
  );
4027
4035
  var NestedMenuProvider = ({
@@ -4031,7 +4039,7 @@ var NestedMenuProvider = ({
4031
4039
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(NestedMenuContext.Provider, { value: nestedMenuProps, children });
4032
4040
  };
4033
4041
  var useNestedMenuContext = () => {
4034
- const nestedMenuContextValue = (0, import_react28.useContext)(NestedMenuContext);
4042
+ const nestedMenuContextValue = (0, import_react27.useContext)(NestedMenuContext);
4035
4043
  if (nestedMenuContextValue === null) {
4036
4044
  throw new Error(
4037
4045
  "useNestedMenuContext must be used within a <NestedMenuContext.Provider />"
@@ -4041,7 +4049,7 @@ var useNestedMenuContext = () => {
4041
4049
  };
4042
4050
 
4043
4051
  // src/NestedMenu/NestedMenuContent.tsx
4044
- var import_react29 = require("react");
4052
+ var import_react28 = require("react");
4045
4053
  var import_seeds_react_utilities3 = require("@sproutsocial/seeds-react-utilities");
4046
4054
 
4047
4055
  // src/NestedMenu/NestedMenuItem.tsx
@@ -4082,10 +4090,10 @@ var NestedMenuContent = ({
4082
4090
  }) => {
4083
4091
  const { highlightedIndex, items } = useMenuContentContext();
4084
4092
  const { setSelectedMenuId, selectedMenuPath, goBack } = useNestedMenuContext();
4085
- const internalRef = (0, import_react29.useRef)(null);
4093
+ const internalRef = (0, import_react28.useRef)(null);
4086
4094
  const innerRef = (0, import_seeds_react_utilities3.mergeRefs)(internalRef, innerRefProp);
4087
4095
  const contentProps = children ? { children } : { menuItems, MenuItemComponent };
4088
- (0, import_react29.useEffect)(() => {
4096
+ (0, import_react28.useEffect)(() => {
4089
4097
  internalRef?.current?.focus();
4090
4098
  }, []);
4091
4099
  const onKeyDown = (e) => {
@@ -4123,7 +4131,7 @@ NestedMenuContent.__MENU_PRIMITIVE_TYPE = "MenuContent";
4123
4131
  // src/NestedMenu/NestedMenuHeader.tsx
4124
4132
  var import_seeds_react_button2 = require("@sproutsocial/seeds-react-button");
4125
4133
  var import_seeds_react_icon6 = require("@sproutsocial/seeds-react-icon");
4126
- var import_react30 = require("motion/react");
4134
+ var import_react29 = require("motion/react");
4127
4135
  var import_jsx_runtime30 = require("react/jsx-runtime");
4128
4136
  var NestedMenuHeader = ({
4129
4137
  backArrowLabel,
@@ -4134,8 +4142,8 @@ var NestedMenuHeader = ({
4134
4142
  return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4135
4143
  MenuHeader,
4136
4144
  {
4137
- leftAction: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react30.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4138
- import_react30.motion.div,
4145
+ leftAction: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react29.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4146
+ import_react29.motion.div,
4139
4147
  {
4140
4148
  initial: { opacity: 0 },
4141
4149
  animate: { opacity: 1 },
@@ -4153,7 +4161,7 @@ var NestedMenuHeader = ({
4153
4161
  };
4154
4162
 
4155
4163
  // src/NestedMenu/NestedMenuRoot.tsx
4156
- var import_react31 = __toESM(require("react"));
4164
+ var import_react30 = __toESM(require("react"));
4157
4165
  var import_jsx_runtime31 = require("react/jsx-runtime");
4158
4166
  var NestedMenuRoot = ({
4159
4167
  children,
@@ -4162,7 +4170,7 @@ var NestedMenuRoot = ({
4162
4170
  }) => {
4163
4171
  const menuContext = useMenu(contextProps);
4164
4172
  const { setActiveMenuContext, selectedMenuPath } = useNestedMenuContext();
4165
- import_react31.default.useEffect(() => {
4173
+ import_react30.default.useEffect(() => {
4166
4174
  setActiveMenuContext(menuContext);
4167
4175
  }, [
4168
4176
  selectedMenuPath[selectedMenuPath.length - 1],
@@ -4173,10 +4181,10 @@ var NestedMenuRoot = ({
4173
4181
  };
4174
4182
 
4175
4183
  // src/NestedMenu/NestedMenuPopout.tsx
4176
- var import_react32 = require("motion/react");
4184
+ var import_react31 = require("motion/react");
4177
4185
  var import_styled_components14 = __toESM(require("styled-components"));
4178
4186
  var import_jsx_runtime32 = require("react/jsx-runtime");
4179
- var StyledDiv = (0, import_styled_components14.default)(import_react32.motion.div)`
4187
+ var StyledDiv = (0, import_styled_components14.default)(import_react31.motion.div)`
4180
4188
  overflow: hidden;
4181
4189
  `;
4182
4190
  var NestedMenuPopout = ({
@@ -4228,9 +4236,9 @@ var NestedMenu = ({
4228
4236
  const { defaultDownshiftProps, ...restDefaults } = useDownshiftDefaults({
4229
4237
  isCombobox: false
4230
4238
  });
4231
- const uniqueId = (0, import_react33.useId)();
4239
+ const uniqueId = (0, import_react32.useId)();
4232
4240
  const nestedMenuId = externalNestedMenuId ?? `nested-menu-${uniqueId}`;
4233
- const [hasLoadedOnce, setHasLoadedOnce] = (0, import_react33.useState)(false);
4241
+ const [hasLoadedOnce, setHasLoadedOnce] = (0, import_react32.useState)(false);
4234
4242
  const useSelectReturnProps = (0, import_downshift9.useSelect)({
4235
4243
  ...defaultDownshiftProps.select,
4236
4244
  id: nestedMenuId,
@@ -4246,7 +4254,7 @@ var NestedMenu = ({
4246
4254
  ...useSelectReturnProps,
4247
4255
  ...restDefaults
4248
4256
  };
4249
- (0, import_react33.useEffect)(() => {
4257
+ (0, import_react32.useEffect)(() => {
4250
4258
  if (!useSelectReturnProps.isOpen) {
4251
4259
  setHasLoadedOnce(false);
4252
4260
  } else {
@@ -4264,15 +4272,15 @@ var NestedMenu = ({
4264
4272
  onIsOpenChange: onNestedIsOpenChange
4265
4273
  };
4266
4274
  rootMenuContextProps.getMenuProps?.({}, { suppressRefError: true });
4267
- const [selectedMenuPath, setSelectedMenuPath] = (0, import_react33.useState)([initialMenuId]);
4268
- const [activeMenuContext, setActiveMenuContext] = (0, import_react33.useState)(defaultMenuContext);
4269
- const [currentMenuId, setCurrentMenuId] = (0, import_react33.useState)(initialMenuId);
4270
- const [isAdding, setIsAdding] = (0, import_react33.useState)(false);
4275
+ const [selectedMenuPath, setSelectedMenuPath] = (0, import_react32.useState)([initialMenuId]);
4276
+ const [activeMenuContext, setActiveMenuContext] = (0, import_react32.useState)(defaultMenuContext);
4277
+ const [currentMenuId, setCurrentMenuId] = (0, import_react32.useState)(initialMenuId);
4278
+ const [isAdding, setIsAdding] = (0, import_react32.useState)(false);
4271
4279
  const setSelectedMenuId = (id) => {
4272
4280
  setIsAdding(true);
4273
4281
  setSelectedMenuPath((currentPath) => [...currentPath, id]);
4274
4282
  };
4275
- (0, import_react33.useEffect)(() => {
4283
+ (0, import_react32.useEffect)(() => {
4276
4284
  if (selectedMenuPath.length > 0) {
4277
4285
  const newMenuId = selectedMenuPath[selectedMenuPath.length - 1];
4278
4286
  setCurrentMenuId(newMenuId);
@@ -4366,8 +4374,8 @@ var NestedMenu = ({
4366
4374
  initialIsOpen: true,
4367
4375
  children: (
4368
4376
  // Handles the smooth animating of the content
4369
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react34.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
4370
- import_react34.motion.div,
4377
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react33.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
4378
+ import_react33.motion.div,
4371
4379
  {
4372
4380
  variants: contentVariants,
4373
4381
  initial: "arrive",
@@ -4415,8 +4423,8 @@ var NestedMenu = ({
4415
4423
  NestedMenuPopout,
4416
4424
  {
4417
4425
  content: MenuComponent && // Handles the rerender of the component
4418
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react34.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4419
- import_react34.motion.div,
4426
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react33.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4427
+ import_react33.motion.div,
4420
4428
  {
4421
4429
  variants: menuVariants,
4422
4430
  initial: "arrive",
@@ -4461,7 +4469,6 @@ var NestedMenu = ({
4461
4469
  MenuLabel,
4462
4470
  MenuPopout,
4463
4471
  MenuRoot,
4464
- MenuRootNoPopout,
4465
4472
  MenuSearchInput,
4466
4473
  MenuSearchTokenInput,
4467
4474
  MenuToggleButton,