@sproutsocial/seeds-react-menu 1.1.1 → 1.2.1

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.d.mts CHANGED
@@ -122,7 +122,7 @@ interface TypeMenuProviderProps {
122
122
  menuContext: TypeMenuContext;
123
123
  }
124
124
  interface TypeMenuToggleContext extends TypeMenuContext {
125
- ref?: (arg0: React__default.ElementRef<any> | HTMLElement) => void;
125
+ ref?: React__default.RefObject<any> | ((arg0: React__default.ElementRef<any> | HTMLElement) => void);
126
126
  toggle?: () => void;
127
127
  show?: () => void;
128
128
  hide?: () => void;
@@ -450,6 +450,8 @@ interface TypeAutocompleteTokenInputProps extends TypeDownshiftMergedInputProps<
450
450
  }
451
451
  declare const AutocompleteTokenInput: ({ onKeyDown, onChange, onInput, onBlur, onClick, inputProps, getTokenProps, ...rest }: TypeAutocompleteTokenInputProps) => react_jsx_runtime.JSX.Element;
452
452
 
453
+ declare const AutocompleteSelect: (props: TypeAutocompleteInputProps) => react_jsx_runtime.JSX.Element;
454
+
453
455
  interface TypeNestedMenuMapProps<P, I extends TypeMenuItemProps = TypeNestedMenuItemProps> {
454
456
  MenuComponent: React.ComponentType<P>;
455
457
  menuProps: Omit<P, "menuToggleElement"> & TypeChildrenOrItems<I>;
@@ -551,4 +553,4 @@ declare const useMenuChildren: <I extends TypeMenuItemProps = TypeMenuItemProps>
551
553
  declare const useSelectStateReducer: Required<UseSelectProps<TypeInternalItemProps>>["stateReducer"];
552
554
  declare const useSelectStateReducerForMulti: Required<UseSelectProps<TypeInternalItemProps>>["stateReducer"];
553
555
 
554
- export { ActionMenu, Autocomplete, AutocompleteInput, AutocompleteTokenInput, CustomPopoutContent, INPUT_TYPES, type InputType, ListboxToggleButton, MenuContent, MenuContentContext, MenuContentProvider, MenuFooter, MenuGroup, MenuHeader, MenuItem, MenuItemAction, MenuItemActionLeft, MenuItemActionRight, MenuItemContainer, MenuItemRow, MenuItemText, MenuLabel, MenuPopout, MenuRoot, MenuRootNoPopout, MenuSearchInput, MenuSearchTokenInput, MenuToggleButton, MenuToggleContext, MenuToggleProvider, MenuTokenInput, MultiSelectMenu, NestedMenu, NestedMenuContent, NestedMenuContext, NestedMenuHeader, NestedMenuItem, NestedMenuProvider, SingleSelectMenu, StyledListboxToggleButton, StyledMenuGroup, StyledMenuGroupUl, StyledMenuItem, StyledTitle, SubmenuItem, type TypeActionMenuBaseProps, type TypeActionMenuProps, type TypeAutocompleteInputProps, type TypeAutocompleteProps, type TypeAutocompleteTokenInputProps, type TypeChildrenOrItems, type TypeDownshiftComboboxProps, type TypeDownshiftComboboxReturnValue, type TypeDownshiftMergedInputProps, type TypeDownshiftMultiSelectProps, type TypeDownshiftMultiSelectReturnValue, type TypeDownshiftSelectProps, type TypeDownshiftSelectReturnValue, type TypeHigherOrderComponentProps, type TypeInternalItemProps, type TypeItemElement, type TypeListboxToggleButtonProps, type TypeMapMenuItemsProps, type TypeMenuChildren, type TypeMenuContentElement, type TypeMenuContentProps, type TypeMenuContext, type TypeMenuContextBaseProps, type TypeMenuContextProps, type TypeMenuGroupBaseProps, type TypeMenuGroupElement, type TypeMenuGroupProps, type TypeMenuGroupStyledProps, type TypeMenuHeaderProps, type TypeMenuItemProps, type TypeMenuItemStyledProps, type TypeMenuPopoutProps, type TypeMenuProviderProps, type TypeMenuRootOwnProps, type TypeMenuRootProps, type TypeMenuSearchInputProps, type TypeMenuSearchTokenInputProps, type TypeMenuToggleButtonProps, type TypeMenuToggleContext, type TypeMenuToggleProviderProps, type TypeMenuTokenInputProps, type TypeMultiAutocompleteProps, type TypeMultiSelectMenuBaseProps, type TypeMultiSelectMenuProps, type TypeNestedMenuContext, type TypeNestedMenuHeaderProps, type TypeNestedMenuItemProps, type TypeNestedMenuMapProps, type TypeNestedMenuProps, type TypeNestedMenuProviderProps, type TypeNotEmptyChildren, type TypeSingleAutocompleteProps, type TypeSingleSelectMenuBaseProps, type TypeSingleSelectMenuProps, type TypeStyledChevronProps, type TypeSubmenuItemProps, type TypeSubmenuValidMenuComponentProps, checkIfItemSelected, defaultMenuContext, getChildrenFromMenuItems, getSelectedItemIds, mapMenuItems, useMenu, useMenuChildren, useMenuContentContext, useMenuToggleContext, useNestedMenuContext, useSelectStateReducer, useSelectStateReducerForMulti };
556
+ export { ActionMenu, Autocomplete, AutocompleteInput, AutocompleteSelect, AutocompleteTokenInput, CustomPopoutContent, INPUT_TYPES, type InputType, ListboxToggleButton, MenuContent, MenuContentContext, MenuContentProvider, MenuFooter, MenuGroup, MenuHeader, MenuItem, MenuItemAction, MenuItemActionLeft, MenuItemActionRight, MenuItemContainer, MenuItemRow, MenuItemText, MenuLabel, MenuPopout, MenuRoot, MenuRootNoPopout, MenuSearchInput, MenuSearchTokenInput, MenuToggleButton, MenuToggleContext, MenuToggleProvider, MenuTokenInput, MultiSelectMenu, NestedMenu, NestedMenuContent, NestedMenuContext, NestedMenuHeader, NestedMenuItem, NestedMenuProvider, SingleSelectMenu, StyledListboxToggleButton, StyledMenuGroup, StyledMenuGroupUl, StyledMenuItem, StyledTitle, SubmenuItem, type TypeActionMenuBaseProps, type TypeActionMenuProps, type TypeAutocompleteInputProps, type TypeAutocompleteProps, type TypeAutocompleteTokenInputProps, type TypeChildrenOrItems, type TypeDownshiftComboboxProps, type TypeDownshiftComboboxReturnValue, type TypeDownshiftMergedInputProps, type TypeDownshiftMultiSelectProps, type TypeDownshiftMultiSelectReturnValue, type TypeDownshiftSelectProps, type TypeDownshiftSelectReturnValue, type TypeHigherOrderComponentProps, type TypeInternalItemProps, type TypeItemElement, type TypeListboxToggleButtonProps, type TypeMapMenuItemsProps, type TypeMenuChildren, type TypeMenuContentElement, type TypeMenuContentProps, type TypeMenuContext, type TypeMenuContextBaseProps, type TypeMenuContextProps, type TypeMenuGroupBaseProps, type TypeMenuGroupElement, type TypeMenuGroupProps, type TypeMenuGroupStyledProps, type TypeMenuHeaderProps, type TypeMenuItemProps, type TypeMenuItemStyledProps, type TypeMenuPopoutProps, type TypeMenuProviderProps, type TypeMenuRootOwnProps, type TypeMenuRootProps, type TypeMenuSearchInputProps, type TypeMenuSearchTokenInputProps, type TypeMenuToggleButtonProps, type TypeMenuToggleContext, type TypeMenuToggleProviderProps, type TypeMenuTokenInputProps, type TypeMultiAutocompleteProps, type TypeMultiSelectMenuBaseProps, type TypeMultiSelectMenuProps, type TypeNestedMenuContext, type TypeNestedMenuHeaderProps, type TypeNestedMenuItemProps, type TypeNestedMenuMapProps, type TypeNestedMenuProps, type TypeNestedMenuProviderProps, type TypeNotEmptyChildren, type TypeSingleAutocompleteProps, type TypeSingleSelectMenuBaseProps, type TypeSingleSelectMenuProps, type TypeStyledChevronProps, type TypeSubmenuItemProps, type TypeSubmenuValidMenuComponentProps, checkIfItemSelected, defaultMenuContext, getChildrenFromMenuItems, getSelectedItemIds, mapMenuItems, useMenu, useMenuChildren, useMenuContentContext, useMenuToggleContext, useNestedMenuContext, useSelectStateReducer, useSelectStateReducerForMulti };
package/dist/index.d.ts CHANGED
@@ -122,7 +122,7 @@ interface TypeMenuProviderProps {
122
122
  menuContext: TypeMenuContext;
123
123
  }
124
124
  interface TypeMenuToggleContext extends TypeMenuContext {
125
- ref?: (arg0: React__default.ElementRef<any> | HTMLElement) => void;
125
+ ref?: React__default.RefObject<any> | ((arg0: React__default.ElementRef<any> | HTMLElement) => void);
126
126
  toggle?: () => void;
127
127
  show?: () => void;
128
128
  hide?: () => void;
@@ -450,6 +450,8 @@ interface TypeAutocompleteTokenInputProps extends TypeDownshiftMergedInputProps<
450
450
  }
451
451
  declare const AutocompleteTokenInput: ({ onKeyDown, onChange, onInput, onBlur, onClick, inputProps, getTokenProps, ...rest }: TypeAutocompleteTokenInputProps) => react_jsx_runtime.JSX.Element;
452
452
 
453
+ declare const AutocompleteSelect: (props: TypeAutocompleteInputProps) => react_jsx_runtime.JSX.Element;
454
+
453
455
  interface TypeNestedMenuMapProps<P, I extends TypeMenuItemProps = TypeNestedMenuItemProps> {
454
456
  MenuComponent: React.ComponentType<P>;
455
457
  menuProps: Omit<P, "menuToggleElement"> & TypeChildrenOrItems<I>;
@@ -551,4 +553,4 @@ declare const useMenuChildren: <I extends TypeMenuItemProps = TypeMenuItemProps>
551
553
  declare const useSelectStateReducer: Required<UseSelectProps<TypeInternalItemProps>>["stateReducer"];
552
554
  declare const useSelectStateReducerForMulti: Required<UseSelectProps<TypeInternalItemProps>>["stateReducer"];
553
555
 
554
- export { ActionMenu, Autocomplete, AutocompleteInput, AutocompleteTokenInput, CustomPopoutContent, INPUT_TYPES, type InputType, ListboxToggleButton, MenuContent, MenuContentContext, MenuContentProvider, MenuFooter, MenuGroup, MenuHeader, MenuItem, MenuItemAction, MenuItemActionLeft, MenuItemActionRight, MenuItemContainer, MenuItemRow, MenuItemText, MenuLabel, MenuPopout, MenuRoot, MenuRootNoPopout, MenuSearchInput, MenuSearchTokenInput, MenuToggleButton, MenuToggleContext, MenuToggleProvider, MenuTokenInput, MultiSelectMenu, NestedMenu, NestedMenuContent, NestedMenuContext, NestedMenuHeader, NestedMenuItem, NestedMenuProvider, SingleSelectMenu, StyledListboxToggleButton, StyledMenuGroup, StyledMenuGroupUl, StyledMenuItem, StyledTitle, SubmenuItem, type TypeActionMenuBaseProps, type TypeActionMenuProps, type TypeAutocompleteInputProps, type TypeAutocompleteProps, type TypeAutocompleteTokenInputProps, type TypeChildrenOrItems, type TypeDownshiftComboboxProps, type TypeDownshiftComboboxReturnValue, type TypeDownshiftMergedInputProps, type TypeDownshiftMultiSelectProps, type TypeDownshiftMultiSelectReturnValue, type TypeDownshiftSelectProps, type TypeDownshiftSelectReturnValue, type TypeHigherOrderComponentProps, type TypeInternalItemProps, type TypeItemElement, type TypeListboxToggleButtonProps, type TypeMapMenuItemsProps, type TypeMenuChildren, type TypeMenuContentElement, type TypeMenuContentProps, type TypeMenuContext, type TypeMenuContextBaseProps, type TypeMenuContextProps, type TypeMenuGroupBaseProps, type TypeMenuGroupElement, type TypeMenuGroupProps, type TypeMenuGroupStyledProps, type TypeMenuHeaderProps, type TypeMenuItemProps, type TypeMenuItemStyledProps, type TypeMenuPopoutProps, type TypeMenuProviderProps, type TypeMenuRootOwnProps, type TypeMenuRootProps, type TypeMenuSearchInputProps, type TypeMenuSearchTokenInputProps, type TypeMenuToggleButtonProps, type TypeMenuToggleContext, type TypeMenuToggleProviderProps, type TypeMenuTokenInputProps, type TypeMultiAutocompleteProps, type TypeMultiSelectMenuBaseProps, type TypeMultiSelectMenuProps, type TypeNestedMenuContext, type TypeNestedMenuHeaderProps, type TypeNestedMenuItemProps, type TypeNestedMenuMapProps, type TypeNestedMenuProps, type TypeNestedMenuProviderProps, type TypeNotEmptyChildren, type TypeSingleAutocompleteProps, type TypeSingleSelectMenuBaseProps, type TypeSingleSelectMenuProps, type TypeStyledChevronProps, type TypeSubmenuItemProps, type TypeSubmenuValidMenuComponentProps, checkIfItemSelected, defaultMenuContext, getChildrenFromMenuItems, getSelectedItemIds, mapMenuItems, useMenu, useMenuChildren, useMenuContentContext, useMenuToggleContext, useNestedMenuContext, useSelectStateReducer, useSelectStateReducerForMulti };
556
+ export { ActionMenu, Autocomplete, AutocompleteInput, AutocompleteSelect, AutocompleteTokenInput, CustomPopoutContent, INPUT_TYPES, type InputType, ListboxToggleButton, MenuContent, MenuContentContext, MenuContentProvider, MenuFooter, MenuGroup, MenuHeader, MenuItem, MenuItemAction, MenuItemActionLeft, MenuItemActionRight, MenuItemContainer, MenuItemRow, MenuItemText, MenuLabel, MenuPopout, MenuRoot, MenuRootNoPopout, MenuSearchInput, MenuSearchTokenInput, MenuToggleButton, MenuToggleContext, MenuToggleProvider, MenuTokenInput, MultiSelectMenu, NestedMenu, NestedMenuContent, NestedMenuContext, NestedMenuHeader, NestedMenuItem, NestedMenuProvider, SingleSelectMenu, StyledListboxToggleButton, StyledMenuGroup, StyledMenuGroupUl, StyledMenuItem, StyledTitle, SubmenuItem, type TypeActionMenuBaseProps, type TypeActionMenuProps, type TypeAutocompleteInputProps, type TypeAutocompleteProps, type TypeAutocompleteTokenInputProps, type TypeChildrenOrItems, type TypeDownshiftComboboxProps, type TypeDownshiftComboboxReturnValue, type TypeDownshiftMergedInputProps, type TypeDownshiftMultiSelectProps, type TypeDownshiftMultiSelectReturnValue, type TypeDownshiftSelectProps, type TypeDownshiftSelectReturnValue, type TypeHigherOrderComponentProps, type TypeInternalItemProps, type TypeItemElement, type TypeListboxToggleButtonProps, type TypeMapMenuItemsProps, type TypeMenuChildren, type TypeMenuContentElement, type TypeMenuContentProps, type TypeMenuContext, type TypeMenuContextBaseProps, type TypeMenuContextProps, type TypeMenuGroupBaseProps, type TypeMenuGroupElement, type TypeMenuGroupProps, type TypeMenuGroupStyledProps, type TypeMenuHeaderProps, type TypeMenuItemProps, type TypeMenuItemStyledProps, type TypeMenuPopoutProps, type TypeMenuProviderProps, type TypeMenuRootOwnProps, type TypeMenuRootProps, type TypeMenuSearchInputProps, type TypeMenuSearchTokenInputProps, type TypeMenuToggleButtonProps, type TypeMenuToggleContext, type TypeMenuToggleProviderProps, type TypeMenuTokenInputProps, type TypeMultiAutocompleteProps, type TypeMultiSelectMenuBaseProps, type TypeMultiSelectMenuProps, type TypeNestedMenuContext, type TypeNestedMenuHeaderProps, type TypeNestedMenuItemProps, type TypeNestedMenuMapProps, type TypeNestedMenuProps, type TypeNestedMenuProviderProps, type TypeNotEmptyChildren, type TypeSingleAutocompleteProps, type TypeSingleSelectMenuBaseProps, type TypeSingleSelectMenuProps, type TypeStyledChevronProps, type TypeSubmenuItemProps, type TypeSubmenuValidMenuComponentProps, checkIfItemSelected, defaultMenuContext, getChildrenFromMenuItems, getSelectedItemIds, mapMenuItems, useMenu, useMenuChildren, useMenuContentContext, useMenuToggleContext, useNestedMenuContext, useSelectStateReducer, useSelectStateReducerForMulti };
package/dist/index.js CHANGED
@@ -106,6 +106,7 @@ __export(index_exports, {
106
106
  ActionMenu: () => ActionMenu,
107
107
  Autocomplete: () => Autocomplete,
108
108
  AutocompleteInput: () => AutocompleteInput,
109
+ AutocompleteSelect: () => AutocompleteSelect,
109
110
  AutocompleteTokenInput: () => AutocompleteTokenInput,
110
111
  CustomPopoutContent: () => CustomPopoutContent,
111
112
  INPUT_TYPES: () => INPUT_TYPES,
@@ -2182,7 +2183,11 @@ var import_styled_components5 = __toESM(require("styled-components"));
2182
2183
  var StyledMenuContent = import_styled_components5.default.ul`
2183
2184
  margin: 0;
2184
2185
  padding: 0;
2185
- outline: none;
2186
+
2187
+ &:focus {
2188
+ outline: none;
2189
+ box-shadow: none;
2190
+ }
2186
2191
  `;
2187
2192
 
2188
2193
  // src/hooks/useMenuChildren.tsx
@@ -2598,9 +2603,10 @@ var MenuGroup = ({
2598
2603
  MenuGroup.__MENU_PRIMITIVE_TYPE = "MenuGroup";
2599
2604
 
2600
2605
  // src/MenuRoot/MenuRoot.tsx
2601
- var import_react10 = require("react");
2606
+ var import_react10 = __toESM(require("react"));
2602
2607
  var import_styled_components10 = __toESM(require("styled-components"));
2603
2608
  var import_seeds_react_popout = require("@sproutsocial/seeds-react-popout");
2609
+ var import_seeds_react_utilities = require("@sproutsocial/seeds-react-utilities");
2604
2610
 
2605
2611
  // ../../seeds-design-tokens/seeds-motion/dist/seeds-motion-unitless.esm.js
2606
2612
  var MOTION_DURATION_FAST = 0.15;
@@ -2677,7 +2683,7 @@ var MenuRoot = ({
2677
2683
  children,
2678
2684
  menuToggleElement,
2679
2685
  popoutProps: { placement = "bottom", focusLockProps, ...popoutProps } = {},
2680
- width: width2 = "300px",
2686
+ width: width2,
2681
2687
  ...contextProps
2682
2688
  }) => {
2683
2689
  const {
@@ -2686,14 +2692,22 @@ var MenuRoot = ({
2686
2692
  closeMenu,
2687
2693
  inputValue,
2688
2694
  hiddenItemsCount = 0,
2689
- items
2695
+ items,
2696
+ getMenuProps
2690
2697
  } = contextProps;
2691
- const setIsOpen = (0, import_react10.useCallback)(
2692
- (newIsOpen) => {
2693
- newIsOpen ? openMenu?.() : closeMenu?.();
2694
- },
2695
- [openMenu, closeMenu]
2696
- );
2698
+ const toggleElementRef = import_react10.default.useRef(null);
2699
+ const [finalWidth, setFinalWidth] = import_react10.default.useState();
2700
+ const min_width = 200;
2701
+ (0, import_react10.useLayoutEffect)(() => {
2702
+ if (width2) {
2703
+ setFinalWidth(width2);
2704
+ } else if (toggleElementRef.current?.offsetWidth) {
2705
+ const toggleWidth = toggleElementRef.current.offsetWidth;
2706
+ setFinalWidth(Math.max(toggleWidth, min_width));
2707
+ } else {
2708
+ setFinalWidth(min_width);
2709
+ }
2710
+ }, [width2, toggleElementRef.current?.offsetWidth]);
2697
2711
  (0, import_react10.useEffect)(() => {
2698
2712
  if (!inputValue) return;
2699
2713
  if (items && hiddenItemsCount >= items.length && isOpen) {
@@ -2701,6 +2715,7 @@ var MenuRoot = ({
2701
2715
  }
2702
2716
  }, [hiddenItemsCount, items?.length, isOpen, inputValue]);
2703
2717
  const menuContext = useMenu(contextProps);
2718
+ getMenuProps?.({}, { suppressRefError: true });
2704
2719
  return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
2705
2720
  MenuPopout,
2706
2721
  {
@@ -2709,8 +2724,22 @@ var MenuRoot = ({
2709
2724
  openMenu,
2710
2725
  closeMenu,
2711
2726
  content: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(MenuContentProvider, { menuContext, children }),
2727
+ width: finalWidth,
2712
2728
  ...popoutProps,
2713
- children: (toggleProps) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(MenuToggleProvider, { menuContext: { ...menuContext, ...toggleProps }, children: menuToggleElement })
2729
+ children: (toggleProps) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
2730
+ MenuToggleProvider,
2731
+ {
2732
+ menuContext: {
2733
+ ...menuContext,
2734
+ ...toggleProps,
2735
+ ref: (0, import_seeds_react_utilities.mergeRefs)(
2736
+ toggleProps.ref,
2737
+ toggleElementRef
2738
+ )
2739
+ },
2740
+ children: menuToggleElement
2741
+ }
2742
+ )
2714
2743
  }
2715
2744
  );
2716
2745
  };
@@ -3012,7 +3041,7 @@ var MenuSearchTokenInput = ({
3012
3041
  var import_react17 = __toESM(require("react"));
3013
3042
  var import_seeds_react_icon2 = require("@sproutsocial/seeds-react-icon");
3014
3043
  var import_seeds_react_box3 = require("@sproutsocial/seeds-react-box");
3015
- var import_seeds_react_utilities = require("@sproutsocial/seeds-react-utilities");
3044
+ var import_seeds_react_utilities2 = require("@sproutsocial/seeds-react-utilities");
3016
3045
  var import_jsx_runtime16 = require("react/jsx-runtime");
3017
3046
  var SubmenuItemTrigger = ({
3018
3047
  id,
@@ -3021,7 +3050,7 @@ var SubmenuItemTrigger = ({
3021
3050
  ...rest
3022
3051
  }) => {
3023
3052
  const { getToggleButtonProps, getDropdownProps, ref, ariaProps } = useMenuToggleContext();
3024
- const toggleRef = ref && innerRef ? (0, import_seeds_react_utilities.mergeRefs)([ref, innerRef].filter(Boolean)) : ref || innerRef;
3053
+ const toggleRef = ref && innerRef ? (0, import_seeds_react_utilities2.mergeRefs)([ref, innerRef].filter(Boolean)) : ref || innerRef;
3025
3054
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3026
3055
  MenuItem,
3027
3056
  {
@@ -3923,9 +3952,30 @@ var AutocompleteTokenInput = ({
3923
3952
  );
3924
3953
  };
3925
3954
 
3955
+ // src/Autocomplete/AutocompleteSelect.tsx
3956
+ var import_seeds_react_icon4 = __toESM(require("@sproutsocial/seeds-react-icon"));
3957
+ var import_react27 = require("react");
3958
+ var import_styled_components13 = __toESM(require("styled-components"));
3959
+ var import_seeds_react_input3 = require("@sproutsocial/seeds-react-input");
3960
+ var import_jsx_runtime26 = require("react/jsx-runtime");
3961
+ var StyledAutocompleteInput = (0, import_styled_components13.default)(AutocompleteInput)`
3962
+ ${import_seeds_react_input3.Accessory} {
3963
+ pointer-events: none;
3964
+ }
3965
+ `;
3966
+ var AutocompleteSelect = (props) => {
3967
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3968
+ StyledAutocompleteInput,
3969
+ {
3970
+ elemAfter: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_seeds_react_icon4.default, { name: "chevron-down" }),
3971
+ ...props
3972
+ }
3973
+ );
3974
+ };
3975
+
3926
3976
  // src/NestedMenu/NestedMenu.tsx
3927
- var import_react32 = require("react");
3928
- var import_react33 = require("motion/react");
3977
+ var import_react33 = require("react");
3978
+ var import_react34 = require("motion/react");
3929
3979
  var import_downshift9 = require("downshift");
3930
3980
 
3931
3981
  // src/reducers/nestedMenuStateReducer.tsx
@@ -3953,8 +4003,8 @@ var nestedMenuStateReducer = (_state, actionAndChanges) => {
3953
4003
  };
3954
4004
 
3955
4005
  // src/NestedMenu/NestedMenuContext.tsx
3956
- var import_react27 = require("react");
3957
- var import_jsx_runtime26 = require("react/jsx-runtime");
4006
+ var import_react28 = require("react");
4007
+ var import_jsx_runtime27 = require("react/jsx-runtime");
3958
4008
  var defaultNestedMenuContext = {
3959
4009
  selectedMenuPath: [],
3960
4010
  setSelectedMenuId: () => {
@@ -3971,17 +4021,17 @@ var defaultNestedMenuContext = {
3971
4021
  },
3972
4022
  animationSpeed: MOTION_DURATION_FAST
3973
4023
  };
3974
- var NestedMenuContext = (0, import_react27.createContext)(
4024
+ var NestedMenuContext = (0, import_react28.createContext)(
3975
4025
  defaultNestedMenuContext
3976
4026
  );
3977
4027
  var NestedMenuProvider = ({
3978
4028
  children,
3979
4029
  ...nestedMenuProps
3980
4030
  }) => {
3981
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(NestedMenuContext.Provider, { value: nestedMenuProps, children });
4031
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(NestedMenuContext.Provider, { value: nestedMenuProps, children });
3982
4032
  };
3983
4033
  var useNestedMenuContext = () => {
3984
- const nestedMenuContextValue = (0, import_react27.useContext)(NestedMenuContext);
4034
+ const nestedMenuContextValue = (0, import_react28.useContext)(NestedMenuContext);
3985
4035
  if (nestedMenuContextValue === null) {
3986
4036
  throw new Error(
3987
4037
  "useNestedMenuContext must be used within a <NestedMenuContext.Provider />"
@@ -3991,13 +4041,13 @@ var useNestedMenuContext = () => {
3991
4041
  };
3992
4042
 
3993
4043
  // src/NestedMenu/NestedMenuContent.tsx
3994
- var import_react28 = require("react");
3995
- var import_seeds_react_utilities2 = require("@sproutsocial/seeds-react-utilities");
4044
+ var import_react29 = require("react");
4045
+ var import_seeds_react_utilities3 = require("@sproutsocial/seeds-react-utilities");
3996
4046
 
3997
4047
  // src/NestedMenu/NestedMenuItem.tsx
3998
- var import_seeds_react_icon4 = require("@sproutsocial/seeds-react-icon");
4048
+ var import_seeds_react_icon5 = require("@sproutsocial/seeds-react-icon");
3999
4049
  var import_seeds_react_box4 = require("@sproutsocial/seeds-react-box");
4000
- var import_jsx_runtime27 = require("react/jsx-runtime");
4050
+ var import_jsx_runtime28 = require("react/jsx-runtime");
4001
4051
  var NestedMenuItem = ({
4002
4052
  children,
4003
4053
  childMenuId,
@@ -4005,21 +4055,23 @@ var NestedMenuItem = ({
4005
4055
  ...rest
4006
4056
  }) => {
4007
4057
  const { setSelectedMenuId } = useNestedMenuContext();
4008
- const onClickProps = childMenuId ? {
4058
+ const onClickProps = childMenuId || onClickProp ? {
4009
4059
  onClick: (e) => {
4010
4060
  onClickProp?.(e);
4011
- setSelectedMenuId?.(childMenuId);
4061
+ if (childMenuId) {
4062
+ setSelectedMenuId?.(childMenuId);
4063
+ }
4012
4064
  }
4013
4065
  } : {};
4014
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(MenuItem, { ...onClickProps, ...rest, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_seeds_react_box4.Box, { display: "flex", justifyContent: "space-between", children: [
4066
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(MenuItem, { ...onClickProps, ...rest, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_seeds_react_box4.Box, { display: "flex", justifyContent: "space-between", children: [
4015
4067
  children,
4016
- childMenuId && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(MenuItemActionRight, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_seeds_react_icon4.Icon, { name: "arrow-right-outline" }) })
4068
+ childMenuId && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(MenuItemActionRight, { children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_seeds_react_icon5.Icon, { name: "arrow-right-outline" }) })
4017
4069
  ] }) });
4018
4070
  };
4019
4071
  NestedMenuItem.__MENU_PRIMITIVE_TYPE = "MenuItem";
4020
4072
 
4021
4073
  // src/NestedMenu/NestedMenuContent.tsx
4022
- var import_jsx_runtime28 = require("react/jsx-runtime");
4074
+ var import_jsx_runtime29 = require("react/jsx-runtime");
4023
4075
  var NestedMenuContent = ({
4024
4076
  innerRef: innerRefProp = null,
4025
4077
  onKeyDown: onKeyDownProp,
@@ -4030,10 +4082,10 @@ var NestedMenuContent = ({
4030
4082
  }) => {
4031
4083
  const { highlightedIndex, items } = useMenuContentContext();
4032
4084
  const { setSelectedMenuId, selectedMenuPath, goBack } = useNestedMenuContext();
4033
- const internalRef = (0, import_react28.useRef)(null);
4034
- const innerRef = (0, import_seeds_react_utilities2.mergeRefs)(internalRef, innerRefProp);
4085
+ const internalRef = (0, import_react29.useRef)(null);
4086
+ const innerRef = (0, import_seeds_react_utilities3.mergeRefs)(internalRef, innerRefProp);
4035
4087
  const contentProps = children ? { children } : { menuItems, MenuItemComponent };
4036
- (0, import_react28.useEffect)(() => {
4088
+ (0, import_react29.useEffect)(() => {
4037
4089
  internalRef?.current?.focus();
4038
4090
  }, []);
4039
4091
  const onKeyDown = (e) => {
@@ -4056,7 +4108,7 @@ var NestedMenuContent = ({
4056
4108
  break;
4057
4109
  }
4058
4110
  };
4059
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4111
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
4060
4112
  MenuContent,
4061
4113
  {
4062
4114
  onKeyDown,
@@ -4070,20 +4122,20 @@ NestedMenuContent.__MENU_PRIMITIVE_TYPE = "MenuContent";
4070
4122
 
4071
4123
  // src/NestedMenu/NestedMenuHeader.tsx
4072
4124
  var import_seeds_react_button2 = require("@sproutsocial/seeds-react-button");
4073
- var import_seeds_react_icon5 = require("@sproutsocial/seeds-react-icon");
4074
- var import_react29 = require("motion/react");
4075
- var import_jsx_runtime29 = require("react/jsx-runtime");
4125
+ var import_seeds_react_icon6 = require("@sproutsocial/seeds-react-icon");
4126
+ var import_react30 = require("motion/react");
4127
+ var import_jsx_runtime30 = require("react/jsx-runtime");
4076
4128
  var NestedMenuHeader = ({
4077
4129
  backArrowLabel,
4078
4130
  ...props
4079
4131
  }) => {
4080
4132
  const { goBack, selectedMenuPath, animationSpeed } = useNestedMenuContext();
4081
4133
  const showBackArrow = selectedMenuPath.length > 1;
4082
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
4134
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4083
4135
  MenuHeader,
4084
4136
  {
4085
- leftAction: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react29.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
4086
- import_react29.motion.div,
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,
4087
4139
  {
4088
4140
  initial: { opacity: 0 },
4089
4141
  animate: { opacity: 1 },
@@ -4091,7 +4143,7 @@ var NestedMenuHeader = ({
4091
4143
  opacity: 0,
4092
4144
  transition: { duration: animationSpeed }
4093
4145
  },
4094
- children: showBackArrow ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_seeds_react_button2.Button, { onClick: goBack, ariaLabel: backArrowLabel, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_seeds_react_icon5.Icon, { name: "arrow-left" }) }) : void 0
4146
+ children: showBackArrow ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_seeds_react_button2.Button, { onClick: goBack, ariaLabel: backArrowLabel, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_seeds_react_icon6.Icon, { name: "arrow-left" }) }) : void 0
4095
4147
  },
4096
4148
  `${selectedMenuPath}-header--button`
4097
4149
  ) }),
@@ -4101,8 +4153,8 @@ var NestedMenuHeader = ({
4101
4153
  };
4102
4154
 
4103
4155
  // src/NestedMenu/NestedMenuRoot.tsx
4104
- var import_react30 = __toESM(require("react"));
4105
- var import_jsx_runtime30 = require("react/jsx-runtime");
4156
+ var import_react31 = __toESM(require("react"));
4157
+ var import_jsx_runtime31 = require("react/jsx-runtime");
4106
4158
  var NestedMenuRoot = ({
4107
4159
  children,
4108
4160
  menuToggleElement,
@@ -4110,21 +4162,21 @@ var NestedMenuRoot = ({
4110
4162
  }) => {
4111
4163
  const menuContext = useMenu(contextProps);
4112
4164
  const { setActiveMenuContext, selectedMenuPath } = useNestedMenuContext();
4113
- import_react30.default.useEffect(() => {
4165
+ import_react31.default.useEffect(() => {
4114
4166
  setActiveMenuContext(menuContext);
4115
4167
  }, [
4116
4168
  selectedMenuPath[selectedMenuPath.length - 1],
4117
4169
  menuContext.selectedItem,
4118
4170
  menuContext.selectedItems?.length
4119
4171
  ]);
4120
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(MenuContentProvider, { menuContext, children });
4172
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(MenuContentProvider, { menuContext, children });
4121
4173
  };
4122
4174
 
4123
4175
  // src/NestedMenu/NestedMenuPopout.tsx
4124
- var import_react31 = require("motion/react");
4125
- var import_styled_components13 = __toESM(require("styled-components"));
4126
- var import_jsx_runtime31 = require("react/jsx-runtime");
4127
- var StyledDiv = (0, import_styled_components13.default)(import_react31.motion.div)`
4176
+ var import_react32 = require("motion/react");
4177
+ var import_styled_components14 = __toESM(require("styled-components"));
4178
+ var import_jsx_runtime32 = require("react/jsx-runtime");
4179
+ var StyledDiv = (0, import_styled_components14.default)(import_react32.motion.div)`
4128
4180
  overflow: hidden;
4129
4181
  `;
4130
4182
  var NestedMenuPopout = ({
@@ -4134,7 +4186,7 @@ var NestedMenuPopout = ({
4134
4186
  ...popoutProps
4135
4187
  }) => {
4136
4188
  const { activeMenuContext, rootMenuContextProps, resetSelectedMenuPath } = useNestedMenuContext();
4137
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4189
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4138
4190
  MenuPopout,
4139
4191
  {
4140
4192
  ...popoutProps,
@@ -4143,8 +4195,8 @@ var NestedMenuPopout = ({
4143
4195
  openMenu: rootMenuContextProps.openMenu,
4144
4196
  closeMenu: rootMenuContextProps.closeMenu,
4145
4197
  width: width2,
4146
- content: (props) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(StyledDiv, { layout: "position", children: typeof content === "function" ? content(props) : content }),
4147
- children: (toggleProps) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4198
+ content: (props) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(StyledDiv, { layout: "position", children: typeof content === "function" ? content(props) : content }),
4199
+ children: (toggleProps) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4148
4200
  MenuToggleProvider,
4149
4201
  {
4150
4202
  menuContext: {
@@ -4160,7 +4212,7 @@ var NestedMenuPopout = ({
4160
4212
  };
4161
4213
 
4162
4214
  // src/NestedMenu/NestedMenu.tsx
4163
- var import_jsx_runtime32 = require("react/jsx-runtime");
4215
+ var import_jsx_runtime33 = require("react/jsx-runtime");
4164
4216
  var NestedMenu = ({
4165
4217
  initialMenuId,
4166
4218
  menus,
@@ -4176,9 +4228,9 @@ var NestedMenu = ({
4176
4228
  const { defaultDownshiftProps, ...restDefaults } = useDownshiftDefaults({
4177
4229
  isCombobox: false
4178
4230
  });
4179
- const uniqueId = (0, import_react32.useId)();
4231
+ const uniqueId = (0, import_react33.useId)();
4180
4232
  const nestedMenuId = externalNestedMenuId ?? `nested-menu-${uniqueId}`;
4181
- const [hasLoadedOnce, setHasLoadedOnce] = (0, import_react32.useState)(false);
4233
+ const [hasLoadedOnce, setHasLoadedOnce] = (0, import_react33.useState)(false);
4182
4234
  const useSelectReturnProps = (0, import_downshift9.useSelect)({
4183
4235
  ...defaultDownshiftProps.select,
4184
4236
  id: nestedMenuId,
@@ -4194,7 +4246,7 @@ var NestedMenu = ({
4194
4246
  ...useSelectReturnProps,
4195
4247
  ...restDefaults
4196
4248
  };
4197
- (0, import_react32.useEffect)(() => {
4249
+ (0, import_react33.useEffect)(() => {
4198
4250
  if (!useSelectReturnProps.isOpen) {
4199
4251
  setHasLoadedOnce(false);
4200
4252
  } else {
@@ -4211,15 +4263,16 @@ var NestedMenu = ({
4211
4263
  id: nestedMenuId,
4212
4264
  onIsOpenChange: onNestedIsOpenChange
4213
4265
  };
4214
- const [selectedMenuPath, setSelectedMenuPath] = (0, import_react32.useState)([initialMenuId]);
4215
- const [activeMenuContext, setActiveMenuContext] = (0, import_react32.useState)(defaultMenuContext);
4216
- const [currentMenuId, setCurrentMenuId] = (0, import_react32.useState)(initialMenuId);
4217
- const [isAdding, setIsAdding] = (0, import_react32.useState)(false);
4266
+ 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);
4218
4271
  const setSelectedMenuId = (id) => {
4219
4272
  setIsAdding(true);
4220
4273
  setSelectedMenuPath((currentPath) => [...currentPath, id]);
4221
4274
  };
4222
- (0, import_react32.useEffect)(() => {
4275
+ (0, import_react33.useEffect)(() => {
4223
4276
  if (selectedMenuPath.length > 0) {
4224
4277
  const newMenuId = selectedMenuPath[selectedMenuPath.length - 1];
4225
4278
  setCurrentMenuId(newMenuId);
@@ -4313,8 +4366,8 @@ var NestedMenu = ({
4313
4366
  initialIsOpen: true,
4314
4367
  children: (
4315
4368
  // Handles the smooth animating of the content
4316
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react33.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
4317
- import_react33.motion.div,
4369
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react34.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
4370
+ import_react34.motion.div,
4318
4371
  {
4319
4372
  variants: contentVariants,
4320
4373
  initial: "arrive",
@@ -4322,7 +4375,7 @@ var NestedMenu = ({
4322
4375
  exit: "leave",
4323
4376
  custom: { isAdding, hasLoadedOnce },
4324
4377
  children: [
4325
- MenuHeaderComponent && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4378
+ MenuHeaderComponent && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4326
4379
  MenuHeaderComponent,
4327
4380
  {
4328
4381
  backArrowLabel,
@@ -4330,7 +4383,7 @@ var NestedMenu = ({
4330
4383
  }
4331
4384
  ),
4332
4385
  children && children,
4333
- menuItems && !children && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4386
+ menuItems && !children && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4334
4387
  NestedMenuContent,
4335
4388
  {
4336
4389
  menuItems,
@@ -4344,7 +4397,7 @@ var NestedMenu = ({
4344
4397
  ),
4345
4398
  ...restMenuProps
4346
4399
  };
4347
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4400
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4348
4401
  NestedMenuProvider,
4349
4402
  {
4350
4403
  ...{
@@ -4358,19 +4411,19 @@ var NestedMenu = ({
4358
4411
  setActiveMenuContext,
4359
4412
  animationSpeed
4360
4413
  },
4361
- children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4414
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4362
4415
  NestedMenuPopout,
4363
4416
  {
4364
4417
  content: MenuComponent && // Handles the rerender of the component
4365
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react33.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4366
- import_react33.motion.div,
4418
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react34.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4419
+ import_react34.motion.div,
4367
4420
  {
4368
4421
  variants: menuVariants,
4369
4422
  initial: "arrive",
4370
4423
  animate: "enter",
4371
4424
  exit: "leave",
4372
4425
  custom: { isAdding, hasLoadedOnce },
4373
- children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(MenuComponent, { ...nestedMenuProps })
4426
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(MenuComponent, { ...nestedMenuProps })
4374
4427
  },
4375
4428
  `${currentMenuId}-content`
4376
4429
  ) }),
@@ -4387,6 +4440,7 @@ var NestedMenu = ({
4387
4440
  ActionMenu,
4388
4441
  Autocomplete,
4389
4442
  AutocompleteInput,
4443
+ AutocompleteSelect,
4390
4444
  AutocompleteTokenInput,
4391
4445
  CustomPopoutContent,
4392
4446
  INPUT_TYPES,