@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.
@@ -84,14 +84,14 @@ ESM Build start
84
84
  ╵ ~~~~~~~~~
85
85
 
86
86
 
87
- CJS dist/index.js 140.98 KB
88
- CJS dist/index.js.map 362.59 KB
89
- CJS ⚡️ Build success in 539ms
90
- ESM dist/esm/index.js 131.36 KB
91
- ESM dist/esm/index.js.map 361.32 KB
92
- ESM ⚡️ Build success in 545ms
87
+ ESM dist/esm/index.js 131.72 KB
88
+ ESM dist/esm/index.js.map 364.88 KB
89
+ ESM ⚡️ Build success in 550ms
90
+ CJS dist/index.js 141.25 KB
91
+ CJS dist/index.js.map 366.13 KB
92
+ CJS ⚡️ Build success in 555ms
93
93
  DTS Build start
94
- DTS ⚡️ Build success in 15626ms
95
- DTS dist/index.d.ts 32.53 KB
96
- DTS dist/index.d.mts 32.53 KB
97
- Done in 17.69s.
94
+ DTS ⚡️ Build success in 15567ms
95
+ DTS dist/index.d.ts 36.84 KB
96
+ DTS dist/index.d.mts 36.84 KB
97
+ Done in 17.81s.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @sproutsocial/seeds-react-menu
2
2
 
3
+ ## 1.2.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 68254a6: Fixed issue where Menus using the MenuSearchInput automatically closed when the results were empty. They now remain open when no match is found.
8
+
9
+ ## 1.2.2
10
+
11
+ ### Patch Changes
12
+
13
+ - 75c88a8: Improves Menu prop documentation
14
+
3
15
  ## 1.2.1
4
16
 
5
17
  ### Patch Changes
package/dist/esm/index.js CHANGED
@@ -2549,7 +2549,6 @@ MenuGroup.__MENU_PRIMITIVE_TYPE = "MenuGroup";
2549
2549
  // src/MenuRoot/MenuRoot.tsx
2550
2550
  import React7, {
2551
2551
  useCallback as useCallback2,
2552
- useEffect,
2553
2552
  useLayoutEffect
2554
2553
  } from "react";
2555
2554
  import styled7 from "styled-components";
@@ -2656,12 +2655,6 @@ var MenuRoot = ({
2656
2655
  setFinalWidth(min_width);
2657
2656
  }
2658
2657
  }, [width2, toggleElementRef.current?.offsetWidth]);
2659
- useEffect(() => {
2660
- if (!inputValue) return;
2661
- if (items && hiddenItemsCount >= items.length && isOpen) {
2662
- closeMenu?.();
2663
- }
2664
- }, [hiddenItemsCount, items?.length, isOpen, inputValue]);
2665
2658
  const menuContext = useMenu(contextProps);
2666
2659
  getMenuProps?.({}, { suppressRefError: true });
2667
2660
  return /* @__PURE__ */ jsx10(
@@ -2691,32 +2684,36 @@ var MenuRoot = ({
2691
2684
  }
2692
2685
  );
2693
2686
  };
2694
- var MenuRootNoPopout = ({
2695
- children,
2696
- menuToggleElement,
2697
- ...contextProps
2698
- }) => {
2699
- const menuContext = useMenu(contextProps);
2700
- return /* @__PURE__ */ jsx10(MenuContentProvider, { menuContext, children });
2701
- };
2702
2687
 
2703
2688
  // src/MenuLabel.tsx
2704
2689
  import "react";
2705
2690
  import { Label } from "@sproutsocial/seeds-react-label";
2706
2691
  import { jsx as jsx11 } from "react/jsx-runtime";
2707
- var MenuLabel = ({ children, ...rest }) => {
2692
+ var MenuLabel = ({
2693
+ children,
2694
+ required = false,
2695
+ ...rest
2696
+ }) => {
2708
2697
  const { getLabelProps } = useMenuToggleContext();
2709
- return /* @__PURE__ */ jsx11(Label, { htmlFor: "fallback_menu_label", ...getLabelProps?.(), ...rest, children });
2698
+ return (
2699
+ // This fallback id should never be used, but it is here to satisfy TypeScript since getLabelProps could be undefined.
2700
+ /* @__PURE__ */ jsx11(
2701
+ Label,
2702
+ {
2703
+ htmlFor: "fallback_menu_label",
2704
+ required,
2705
+ ...getLabelProps?.(),
2706
+ ...rest,
2707
+ children
2708
+ }
2709
+ )
2710
+ );
2710
2711
  };
2711
2712
 
2712
2713
  // src/MenuToggleButton/MenuToggleButton.tsx
2713
- import "react";
2714
2714
  import { Button } from "@sproutsocial/seeds-react-button";
2715
2715
  import { jsx as jsx12 } from "react/jsx-runtime";
2716
- var MenuToggleButton = ({
2717
- children,
2718
- ...rest
2719
- }) => {
2716
+ var MenuToggleButton = (props) => {
2720
2717
  const { getToggleButtonProps, isListbox, getDropdownProps, ref, ariaProps } = useMenuToggleContext();
2721
2718
  return /* @__PURE__ */ jsx12(
2722
2719
  Button,
@@ -2729,18 +2726,17 @@ var MenuToggleButton = ({
2729
2726
  ...ariaProps,
2730
2727
  ...isListbox ? {} : { role: "button", "aria-haspopup": "menu" }
2731
2728
  }),
2732
- ...rest,
2733
- children
2729
+ ...props
2734
2730
  }
2735
2731
  );
2736
2732
  };
2737
2733
 
2738
2734
  // src/MenuSearchInput/MenuSearchInput.tsx
2739
- import React11 from "react";
2735
+ import React10 from "react";
2740
2736
  import { Input } from "@sproutsocial/seeds-react-input";
2741
2737
 
2742
2738
  // src/hooks/useItemFiltering.tsx
2743
- import React10 from "react";
2739
+ import React9 from "react";
2744
2740
 
2745
2741
  // src/utils/downshiftDefaults.ts
2746
2742
  var itemToString = (item) => {
@@ -2760,8 +2756,8 @@ var useItemFiltering = ({
2760
2756
  getShouldFilter = defaultGetShouldFilter,
2761
2757
  setHiddenItemsMap: setHiddenItemsMapProp
2762
2758
  }) => {
2763
- const [hiddenItemsMap, setHiddenItemsMap] = React10.useState({});
2764
- const updateFilteredItems = React10.useCallback(
2759
+ const [hiddenItemsMap, setHiddenItemsMap] = React9.useState({});
2760
+ const updateFilteredItems = React9.useCallback(
2765
2761
  ({ inputValue }) => {
2766
2762
  const newHiddenItems = getShouldFilter({ inputValue }) ? allMenuItems.reduce((map, item) => {
2767
2763
  const isItemVisible = getIsItemVisible(item, inputValue);
@@ -2798,11 +2794,11 @@ var MenuSearchInput = ({
2798
2794
  getIsItemVisible,
2799
2795
  setHiddenItemsMap
2800
2796
  });
2801
- React11.useEffect(() => {
2797
+ React10.useEffect(() => {
2802
2798
  updateFilteredItems({ inputValue: restInputProps.value || "" });
2803
2799
  }, [isOpen, restInputProps.value]);
2804
2800
  const toggleButtonProps = getToggleButtonProps?.() || {};
2805
- const handleKeyDown = React11.useCallback(
2801
+ const handleKeyDown = React10.useCallback(
2806
2802
  (e) => {
2807
2803
  if (e.key === " ") return;
2808
2804
  toggleButtonProps.onKeyDown?.(e);
@@ -2829,7 +2825,7 @@ var MenuSearchInput = ({
2829
2825
  };
2830
2826
 
2831
2827
  // src/MenuTokenInput.tsx
2832
- import React12 from "react";
2828
+ import React11 from "react";
2833
2829
  import styled8 from "styled-components";
2834
2830
  import {
2835
2831
  TokenInput
@@ -2864,7 +2860,7 @@ var MenuTokenInput = ({
2864
2860
  removeSelectedItem,
2865
2861
  setActiveIndex,
2866
2862
  selectedItems = []
2867
- } = React12.useContext(MenuContext);
2863
+ } = React11.useContext(MenuContext);
2868
2864
  const removeToken = (tokenId) => {
2869
2865
  const tokenToRemove = selectedItems?.find((item) => item.id === tokenId);
2870
2866
  tokenToRemove && removeSelectedItem?.(tokenToRemove);
@@ -2918,7 +2914,7 @@ var MenuTokenInput = ({
2918
2914
  };
2919
2915
 
2920
2916
  // src/MenuSearchTokenInput/MenuSearchTokenInput.tsx
2921
- import React13 from "react";
2917
+ import React12 from "react";
2922
2918
  import { jsx as jsx15 } from "react/jsx-runtime";
2923
2919
  var MenuSearchTokenInput = ({
2924
2920
  getIsItemVisible,
@@ -2942,10 +2938,10 @@ var MenuSearchTokenInput = ({
2942
2938
  setHiddenItemsMap
2943
2939
  });
2944
2940
  const controlledValue = value || inputPropsValue !== void 0 ? `${inputPropsValue}` : void 0;
2945
- const [internalValue, setInternalValue] = React13.useState(
2941
+ const [internalValue, setInternalValue] = React12.useState(
2946
2942
  controlledValue || ""
2947
2943
  );
2948
- const updateFilteredState = React13.useCallback(
2944
+ const updateFilteredState = React12.useCallback(
2949
2945
  // defaults to an empty string if no value is passed
2950
2946
  (value2 = "") => {
2951
2947
  setInternalValue(value2);
@@ -2953,14 +2949,14 @@ var MenuSearchTokenInput = ({
2953
2949
  },
2954
2950
  [updateFilteredItems]
2955
2951
  );
2956
- React13.useEffect(() => {
2952
+ React12.useEffect(() => {
2957
2953
  updateFilteredState(controlledValue);
2958
2954
  }, [controlledValue]);
2959
- React13.useEffect(() => {
2955
+ React12.useEffect(() => {
2960
2956
  updateFilteredState(controlledValue);
2961
2957
  }, [isOpen]);
2962
2958
  const toggleButtonProps = getToggleButtonProps?.() || {};
2963
- const handleKeyDown = React13.useCallback(
2959
+ const handleKeyDown = React12.useCallback(
2964
2960
  (e) => {
2965
2961
  if (e.key === " ") return;
2966
2962
  toggleButtonProps.onKeyDown?.(e);
@@ -2988,7 +2984,7 @@ var MenuSearchTokenInput = ({
2988
2984
  };
2989
2985
 
2990
2986
  // src/SubmenuItem/SubmenuItem.tsx
2991
- import React14 from "react";
2987
+ import React13 from "react";
2992
2988
  import { Icon as Icon2 } from "@sproutsocial/seeds-react-icon";
2993
2989
  import { Box as Box3 } from "@sproutsocial/seeds-react-box";
2994
2990
  import { mergeRefs as mergeRefs2 } from "@sproutsocial/seeds-react-utilities";
@@ -3050,17 +3046,17 @@ var SubmenuItem = ({
3050
3046
  itemsMap,
3051
3047
  isOpen: parentIsOpen
3052
3048
  } = useMenuContentContext();
3053
- const [submenuIsFocused, setSubmenuIsFocused] = React14.useState(false);
3054
- const [submenuIsOpen, setSubmenuIsOpen] = React14.useState(false);
3055
- const [submenuIsActive, setSubmenuIsActive] = React14.useState(false);
3056
- const submenuItemRef = React14.useRef(null);
3057
- const submenuRef = React14.useRef(null);
3049
+ const [submenuIsFocused, setSubmenuIsFocused] = React13.useState(false);
3050
+ const [submenuIsOpen, setSubmenuIsOpen] = React13.useState(false);
3051
+ const [submenuIsActive, setSubmenuIsActive] = React13.useState(false);
3052
+ const submenuItemRef = React13.useRef(null);
3053
+ const submenuRef = React13.useRef(null);
3058
3054
  const menuContent = menuItems ? getChildrenFromMenuItems({ menuItems, MenuItemComponent }) : menuChildren;
3059
3055
  const item = itemsMap[id] || {
3060
3056
  index: 0,
3061
3057
  id
3062
3058
  };
3063
- React14.useEffect(() => {
3059
+ React13.useEffect(() => {
3064
3060
  if (highlightedIndex === item.index) {
3065
3061
  !submenuIsOpen && setSubmenuIsOpen(true);
3066
3062
  } else if (submenuIsOpen && highlightedIndex !== -1) {
@@ -3068,7 +3064,7 @@ var SubmenuItem = ({
3068
3064
  setSubmenuIsActive(false);
3069
3065
  }
3070
3066
  }, [highlightedIndex, item.index, submenuIsOpen, setSubmenuIsOpen]);
3071
- const onSubmenuStateChange = React14.useCallback(
3067
+ const onSubmenuStateChange = React13.useCallback(
3072
3068
  (state) => {
3073
3069
  if (state.isOpen !== void 0) {
3074
3070
  setSubmenuIsOpen(state.isOpen);
@@ -3112,7 +3108,7 @@ var SubmenuItem = ({
3112
3108
  onMenuItemClick();
3113
3109
  }
3114
3110
  };
3115
- React14.useEffect(() => {
3111
+ React13.useEffect(() => {
3116
3112
  if (document && document.body) {
3117
3113
  document.body.addEventListener("click", onBodyClick, {
3118
3114
  capture: true
@@ -3216,13 +3212,13 @@ var ListboxToggleButton = ({
3216
3212
  };
3217
3213
 
3218
3214
  // src/ActionMenu/ActionMenu.tsx
3219
- import React16, { useEffect as useEffect2 } from "react";
3215
+ import React15, { useEffect as useEffect2 } from "react";
3220
3216
  import {
3221
3217
  useSelect as useSelect2
3222
3218
  } from "downshift";
3223
3219
 
3224
3220
  // src/hooks/useDownshiftDefaults.tsx
3225
- import React15 from "react";
3221
+ import React14 from "react";
3226
3222
 
3227
3223
  // src/reducers/useComboboxStateReducer.tsx
3228
3224
  import { useCombobox } from "downshift";
@@ -3346,12 +3342,12 @@ var useDownshiftDefaults = ({
3346
3342
  isMulti = false,
3347
3343
  multiSelectProps = {}
3348
3344
  } = {}) => {
3349
- const [hiddenItemsMap, setHiddenItemsMap] = React15.useState({});
3350
- const hiddenItemsCount = React15.useMemo(
3345
+ const [hiddenItemsMap, setHiddenItemsMap] = React14.useState({});
3346
+ const hiddenItemsCount = React14.useMemo(
3351
3347
  () => Object.keys(hiddenItemsMap).filter(Boolean).length,
3352
3348
  [hiddenItemsMap]
3353
3349
  );
3354
- const isItemDisabled = React15.useCallback(
3350
+ const isItemDisabled = React14.useCallback(
3355
3351
  (item) => Boolean(item.disabled || hiddenItemsMap[item.id]),
3356
3352
  [hiddenItemsMap]
3357
3353
  );
@@ -3430,7 +3426,7 @@ var ActionMenu = ({
3430
3426
  const { defaultDownshiftProps, ...restDefaults } = useDownshiftDefaults({
3431
3427
  isCombobox: false
3432
3428
  });
3433
- const [currentSelectedItem, setCurrentSelectedItem] = React16.useState(null);
3429
+ const [currentSelectedItem, setCurrentSelectedItem] = React15.useState(null);
3434
3430
  const { isOpen, ...useSelectReturnProps } = useSelect2({
3435
3431
  ...defaultDownshiftProps.select,
3436
3432
  items: allMenuItems,
@@ -3618,7 +3614,7 @@ var MultiSelectMenu = ({
3618
3614
  import "react";
3619
3615
 
3620
3616
  // src/Autocomplete/SingleAutocomplete.tsx
3621
- import "react";
3617
+ import React18 from "react";
3622
3618
  import { useCombobox as useCombobox2 } from "downshift";
3623
3619
  import { jsx as jsx21 } from "react/jsx-runtime";
3624
3620
  var SingleAutocomplete = ({
@@ -3636,14 +3632,15 @@ var SingleAutocomplete = ({
3636
3632
  menuItems,
3637
3633
  MenuItemComponent
3638
3634
  });
3639
- const { setHiddenItemsMap, defaultDownshiftProps, ...restDefaults } = useDownshiftDefaults({ isCombobox: true });
3635
+ const downshiftDefaults = useDownshiftDefaults({ isCombobox: true });
3636
+ const { setHiddenItemsMap, defaultDownshiftProps, hiddenItemsCount } = downshiftDefaults;
3640
3637
  const { updateFilteredItems } = useItemFiltering({
3641
3638
  allMenuItems,
3642
3639
  itemToString: itemToString2,
3643
3640
  getIsItemVisible,
3644
3641
  setHiddenItemsMap
3645
3642
  });
3646
- const { isOpen, ...useComboboxReturnProps } = useCombobox2({
3643
+ const useComboboxReturnProps = useCombobox2({
3647
3644
  ...defaultDownshiftProps.combobox,
3648
3645
  items: allMenuItems,
3649
3646
  itemToString: itemToString2,
@@ -3654,6 +3651,13 @@ var SingleAutocomplete = ({
3654
3651
  ),
3655
3652
  ...useComboboxProps
3656
3653
  });
3654
+ const { isOpen, closeMenu, inputValue } = useComboboxReturnProps;
3655
+ React18.useEffect(() => {
3656
+ if (!inputValue) return;
3657
+ if (allMenuItems && hiddenItemsCount >= allMenuItems.length && isOpen) {
3658
+ closeMenu?.();
3659
+ }
3660
+ }, [hiddenItemsCount, allMenuItems?.length, isOpen, inputValue]);
3657
3661
  return /* @__PURE__ */ jsx21(
3658
3662
  MenuRootComponent,
3659
3663
  {
@@ -3661,11 +3665,9 @@ var SingleAutocomplete = ({
3661
3665
  isListbox: true,
3662
3666
  items: allMenuItems,
3663
3667
  itemToString: itemToString2,
3664
- isOpen,
3665
- setHiddenItemsMap,
3666
3668
  ...useComboboxProps,
3667
3669
  ...useComboboxReturnProps,
3668
- ...restDefaults
3670
+ ...downshiftDefaults
3669
3671
  },
3670
3672
  popoutProps: {
3671
3673
  focusOnContent: false
@@ -3676,7 +3678,7 @@ var SingleAutocomplete = ({
3676
3678
  };
3677
3679
 
3678
3680
  // src/Autocomplete/MultiAutocomplete.tsx
3679
- import React20 from "react";
3681
+ import React19 from "react";
3680
3682
  import { useCombobox as useCombobox3, useMultipleSelection as useMultipleSelection2 } from "downshift";
3681
3683
  import { jsx as jsx22 } from "react/jsx-runtime";
3682
3684
  var MultiAutocomplete = ({
@@ -3702,21 +3704,21 @@ var MultiAutocomplete = ({
3702
3704
  menuItems,
3703
3705
  MenuItemComponent
3704
3706
  });
3705
- const [selectedItems, setSelectedItems] = React20.useState(initialSelectedItems);
3706
- const [selectedItemIds, setSelectedItemIds] = React20.useState(getSelectedItemIds(initialSelectedItems));
3707
- const getIsItemVisibleMulti = React20.useCallback(
3708
- (item, inputValue) => {
3709
- return (showSelectedItemsInDropdown || !selectedItemIds[item.id]) && getIsItemVisible(item, inputValue);
3707
+ const [selectedItems, setSelectedItems] = React19.useState(initialSelectedItems);
3708
+ const [selectedItemIds, setSelectedItemIds] = React19.useState(getSelectedItemIds(initialSelectedItems));
3709
+ const getIsItemVisibleMulti = React19.useCallback(
3710
+ (item, inputValue2) => {
3711
+ return (showSelectedItemsInDropdown || !selectedItemIds[item.id]) && getIsItemVisible(item, inputValue2);
3710
3712
  },
3711
3713
  [selectedItemIds, showSelectedItemsInDropdown, getIsItemVisible]
3712
3714
  );
3713
- const getShouldFilterMulti = React20.useCallback(
3715
+ const getShouldFilterMulti = React19.useCallback(
3714
3716
  (args) => {
3715
3717
  return !showSelectedItemsInDropdown && Object.keys(selectedItemIds).length > 0 || defaultGetShouldFilter(args);
3716
3718
  },
3717
3719
  [selectedItemIds, showSelectedItemsInDropdown, getIsItemVisible]
3718
3720
  );
3719
- const { setHiddenItemsMap, defaultDownshiftProps, ...restDefaults } = useDownshiftDefaults({
3721
+ const downshiftDefaults = useDownshiftDefaults({
3720
3722
  isCombobox: true,
3721
3723
  isMulti: true,
3722
3724
  // handles the prop name mapping for multi select
@@ -3727,6 +3729,7 @@ var MultiAutocomplete = ({
3727
3729
  ...useComboboxProps
3728
3730
  }
3729
3731
  });
3732
+ const { setHiddenItemsMap, defaultDownshiftProps, hiddenItemsCount } = downshiftDefaults;
3730
3733
  const { updateFilteredItems } = useItemFiltering({
3731
3734
  allMenuItems,
3732
3735
  itemToString: itemToString2,
@@ -3734,7 +3737,7 @@ var MultiAutocomplete = ({
3734
3737
  getShouldFilter: getShouldFilterMulti,
3735
3738
  setHiddenItemsMap
3736
3739
  });
3737
- React20.useEffect(() => {
3740
+ React19.useEffect(() => {
3738
3741
  updateFilteredItems({ inputValue: "" });
3739
3742
  }, [selectedItemIds]);
3740
3743
  const useMultipleSelectionReturnProps = useMultipleSelection2({
@@ -3747,7 +3750,7 @@ var MultiAutocomplete = ({
3747
3750
  onSelectedItemsChange && onSelectedItemsChange({ selectedItems: selectedItems2, ...changes });
3748
3751
  }
3749
3752
  });
3750
- const { isOpen, ...useComboboxReturnProps } = useCombobox3({
3753
+ const useComboboxReturnProps = useCombobox3({
3751
3754
  ...defaultDownshiftProps.combobox,
3752
3755
  items: allMenuItems,
3753
3756
  itemToString: itemToString2,
@@ -3757,7 +3760,7 @@ var MultiAutocomplete = ({
3757
3760
  externalStateReducer
3758
3761
  ),
3759
3762
  onStateChange(changes) {
3760
- const { type, selectedItem: newSelectedItem, inputValue } = changes;
3763
+ const { type, selectedItem: newSelectedItem, inputValue: inputValue2 } = changes;
3761
3764
  switch (type) {
3762
3765
  // Add the selected item to the selected items list
3763
3766
  case useCombobox3.stateChangeTypes.InputKeyDownEnter:
@@ -3778,11 +3781,18 @@ var MultiAutocomplete = ({
3778
3781
  default:
3779
3782
  break;
3780
3783
  }
3781
- if (inputValue !== void 0) updateFilteredItems({ inputValue });
3784
+ if (inputValue2 !== void 0) updateFilteredItems({ inputValue: inputValue2 });
3782
3785
  onStateChange && onStateChange(changes);
3783
3786
  },
3784
3787
  ...useComboboxProps
3785
3788
  });
3789
+ const { isOpen, closeMenu, inputValue } = useComboboxReturnProps;
3790
+ React19.useEffect(() => {
3791
+ if (!inputValue) return;
3792
+ if (allMenuItems && hiddenItemsCount >= allMenuItems.length && isOpen) {
3793
+ closeMenu?.();
3794
+ }
3795
+ }, [hiddenItemsCount, allMenuItems?.length, isOpen, inputValue]);
3786
3796
  return /* @__PURE__ */ jsx22(
3787
3797
  MenuRootComponent,
3788
3798
  {
@@ -3790,18 +3800,16 @@ var MultiAutocomplete = ({
3790
3800
  isListbox: true,
3791
3801
  items: allMenuItems,
3792
3802
  itemToString: itemToString2,
3793
- isOpen,
3794
3803
  initialSelectedItems,
3795
3804
  onStateChange,
3796
3805
  onSelectedItemsChange,
3797
3806
  getA11yMultiStatusMessage,
3798
3807
  onMultiSelectStateChange,
3799
3808
  multiSelectStateReducer,
3800
- setHiddenItemsMap,
3801
3809
  ...useComboboxProps,
3802
3810
  ...useComboboxReturnProps,
3803
3811
  ...useMultipleSelectionReturnProps,
3804
- ...restDefaults
3812
+ ...downshiftDefaults
3805
3813
  },
3806
3814
  popoutProps: {
3807
3815
  focusOnContent: false
@@ -3814,7 +3822,7 @@ var MultiAutocomplete = ({
3814
3822
  // src/Autocomplete/Autocomplete.tsx
3815
3823
  import { jsx as jsx23 } from "react/jsx-runtime";
3816
3824
  var Autocomplete = ({
3817
- multiSelect,
3825
+ multiSelect = false,
3818
3826
  ...rest
3819
3827
  }) => {
3820
3828
  if (multiSelect) {
@@ -3926,7 +3934,7 @@ var AutocompleteSelect = (props) => {
3926
3934
  };
3927
3935
 
3928
3936
  // src/NestedMenu/NestedMenu.tsx
3929
- import { useId, useEffect as useEffect5, useState } from "react";
3937
+ import { useId, useEffect as useEffect4, useState } from "react";
3930
3938
  import { AnimatePresence as AnimatePresence2, motion as motion3 } from "motion/react";
3931
3939
  import { useSelect as useSelect6 } from "downshift";
3932
3940
 
@@ -3993,7 +4001,7 @@ var useNestedMenuContext = () => {
3993
4001
  };
3994
4002
 
3995
4003
  // src/NestedMenu/NestedMenuContent.tsx
3996
- import { useEffect as useEffect4, useRef } from "react";
4004
+ import { useEffect as useEffect3, useRef } from "react";
3997
4005
  import { mergeRefs as mergeRefs3 } from "@sproutsocial/seeds-react-utilities";
3998
4006
 
3999
4007
  // src/NestedMenu/NestedMenuItem.tsx
@@ -4037,7 +4045,7 @@ var NestedMenuContent = ({
4037
4045
  const internalRef = useRef(null);
4038
4046
  const innerRef = mergeRefs3(internalRef, innerRefProp);
4039
4047
  const contentProps = children ? { children } : { menuItems, MenuItemComponent };
4040
- useEffect4(() => {
4048
+ useEffect3(() => {
4041
4049
  internalRef?.current?.focus();
4042
4050
  }, []);
4043
4051
  const onKeyDown = (e) => {
@@ -4105,7 +4113,7 @@ var NestedMenuHeader = ({
4105
4113
  };
4106
4114
 
4107
4115
  // src/NestedMenu/NestedMenuRoot.tsx
4108
- import React25 from "react";
4116
+ import React24 from "react";
4109
4117
  import { jsx as jsx31 } from "react/jsx-runtime";
4110
4118
  var NestedMenuRoot = ({
4111
4119
  children,
@@ -4114,7 +4122,7 @@ var NestedMenuRoot = ({
4114
4122
  }) => {
4115
4123
  const menuContext = useMenu(contextProps);
4116
4124
  const { setActiveMenuContext, selectedMenuPath } = useNestedMenuContext();
4117
- React25.useEffect(() => {
4125
+ React24.useEffect(() => {
4118
4126
  setActiveMenuContext(menuContext);
4119
4127
  }, [
4120
4128
  selectedMenuPath[selectedMenuPath.length - 1],
@@ -4198,7 +4206,7 @@ var NestedMenu = ({
4198
4206
  ...useSelectReturnProps,
4199
4207
  ...restDefaults
4200
4208
  };
4201
- useEffect5(() => {
4209
+ useEffect4(() => {
4202
4210
  if (!useSelectReturnProps.isOpen) {
4203
4211
  setHasLoadedOnce(false);
4204
4212
  } else {
@@ -4224,7 +4232,7 @@ var NestedMenu = ({
4224
4232
  setIsAdding(true);
4225
4233
  setSelectedMenuPath((currentPath) => [...currentPath, id]);
4226
4234
  };
4227
- useEffect5(() => {
4235
+ useEffect4(() => {
4228
4236
  if (selectedMenuPath.length > 0) {
4229
4237
  const newMenuId = selectedMenuPath[selectedMenuPath.length - 1];
4230
4238
  setCurrentMenuId(newMenuId);
@@ -4412,7 +4420,6 @@ export {
4412
4420
  MenuLabel,
4413
4421
  MenuPopout,
4414
4422
  MenuRoot,
4415
- MenuRootNoPopout,
4416
4423
  MenuSearchInput,
4417
4424
  MenuSearchTokenInput,
4418
4425
  MenuToggleButton,