@sproutsocial/seeds-react-menu 1.4.0 → 1.5.0

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
@@ -7,7 +7,7 @@ import { TypeBoxProps } from '@sproutsocial/seeds-react-box';
7
7
  export { TypeBoxProps as TypeMenuFooterProps } from '@sproutsocial/seeds-react-box';
8
8
  import * as React$1 from 'react';
9
9
  import React__default from 'react';
10
- import { TypePopoutProps } from '@sproutsocial/seeds-react-popout';
10
+ import { TypePopoutProps, EnumPlacements } from '@sproutsocial/seeds-react-popout';
11
11
  import { TypeTokenInputProps, TypeTokenSpec } from '@sproutsocial/seeds-react-token-input';
12
12
  import * as _sproutsocial_seeds_react_text from '@sproutsocial/seeds-react-text';
13
13
  import { TypeLabelProps } from '@sproutsocial/seeds-react-label';
@@ -198,6 +198,50 @@ declare const CustomPopoutContent: styled_components.StyledComponent<{
198
198
  ({ children, ...rest }: _sproutsocial_seeds_react_box.TypeBoxProps): react_jsx_runtime.JSX.Element;
199
199
  displayName: string;
200
200
  }, styled_components.DefaultTheme, {}, never>;
201
+ declare const menuPlacementOrigin: {
202
+ [key in EnumPlacements]?: {
203
+ originX: number;
204
+ originY: number;
205
+ };
206
+ };
207
+ declare const menuAnimationConfig: {
208
+ layout: boolean;
209
+ variants: {
210
+ initial: (custom?: {
211
+ placement: EnumPlacements;
212
+ }) => {
213
+ scale: number;
214
+ opacity: number;
215
+ originX?: number | undefined;
216
+ originY?: number | undefined;
217
+ };
218
+ animate: (custom?: {
219
+ placement: EnumPlacements;
220
+ }) => {
221
+ opacity: number;
222
+ scale: number;
223
+ transition: {
224
+ type: string;
225
+ duration: number;
226
+ ease: string;
227
+ };
228
+ originX?: number | undefined;
229
+ originY?: number | undefined;
230
+ };
231
+ exit: {
232
+ opacity: number;
233
+ scale: number;
234
+ transition: {
235
+ type: string;
236
+ duration: number;
237
+ ease: string;
238
+ };
239
+ };
240
+ };
241
+ initial: string;
242
+ animate: string;
243
+ exit: string;
244
+ };
201
245
  interface TypeMenuPopoutProps extends Pick<Partial<TypeMenuContextProps>, "openMenu" | "closeMenu">, TypePopoutProps {
202
246
  }
203
247
  declare const MenuPopout: ({ content, width, isOpen, openMenu, closeMenu, focusLockProps, ...popoutProps }: TypeMenuPopoutProps) => react_jsx_runtime.JSX.Element;
@@ -619,4 +663,4 @@ declare const useMenuChildren: <I extends TypeMenuItemProps = TypeMenuItemProps>
619
663
  declare const useSelectStateReducer: Required<UseSelectProps<TypeInternalItemProps>>["stateReducer"];
620
664
  declare const useSelectStateReducerForMulti: Required<UseSelectProps<TypeInternalItemProps>>["stateReducer"];
621
665
 
622
- 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, 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 TypeBaseAutocompleteProps, 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 TypeMenuLabelProps, 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 };
666
+ 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, 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 TypeBaseAutocompleteProps, 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 TypeMenuLabelProps, 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, menuAnimationConfig, menuPlacementOrigin, useMenu, useMenuChildren, useMenuContentContext, useMenuToggleContext, useNestedMenuContext, useSelectStateReducer, useSelectStateReducerForMulti };
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@ import { TypeBoxProps } from '@sproutsocial/seeds-react-box';
7
7
  export { TypeBoxProps as TypeMenuFooterProps } from '@sproutsocial/seeds-react-box';
8
8
  import * as React$1 from 'react';
9
9
  import React__default from 'react';
10
- import { TypePopoutProps } from '@sproutsocial/seeds-react-popout';
10
+ import { TypePopoutProps, EnumPlacements } from '@sproutsocial/seeds-react-popout';
11
11
  import { TypeTokenInputProps, TypeTokenSpec } from '@sproutsocial/seeds-react-token-input';
12
12
  import * as _sproutsocial_seeds_react_text from '@sproutsocial/seeds-react-text';
13
13
  import { TypeLabelProps } from '@sproutsocial/seeds-react-label';
@@ -198,6 +198,50 @@ declare const CustomPopoutContent: styled_components.StyledComponent<{
198
198
  ({ children, ...rest }: _sproutsocial_seeds_react_box.TypeBoxProps): react_jsx_runtime.JSX.Element;
199
199
  displayName: string;
200
200
  }, styled_components.DefaultTheme, {}, never>;
201
+ declare const menuPlacementOrigin: {
202
+ [key in EnumPlacements]?: {
203
+ originX: number;
204
+ originY: number;
205
+ };
206
+ };
207
+ declare const menuAnimationConfig: {
208
+ layout: boolean;
209
+ variants: {
210
+ initial: (custom?: {
211
+ placement: EnumPlacements;
212
+ }) => {
213
+ scale: number;
214
+ opacity: number;
215
+ originX?: number | undefined;
216
+ originY?: number | undefined;
217
+ };
218
+ animate: (custom?: {
219
+ placement: EnumPlacements;
220
+ }) => {
221
+ opacity: number;
222
+ scale: number;
223
+ transition: {
224
+ type: string;
225
+ duration: number;
226
+ ease: string;
227
+ };
228
+ originX?: number | undefined;
229
+ originY?: number | undefined;
230
+ };
231
+ exit: {
232
+ opacity: number;
233
+ scale: number;
234
+ transition: {
235
+ type: string;
236
+ duration: number;
237
+ ease: string;
238
+ };
239
+ };
240
+ };
241
+ initial: string;
242
+ animate: string;
243
+ exit: string;
244
+ };
201
245
  interface TypeMenuPopoutProps extends Pick<Partial<TypeMenuContextProps>, "openMenu" | "closeMenu">, TypePopoutProps {
202
246
  }
203
247
  declare const MenuPopout: ({ content, width, isOpen, openMenu, closeMenu, focusLockProps, ...popoutProps }: TypeMenuPopoutProps) => react_jsx_runtime.JSX.Element;
@@ -619,4 +663,4 @@ declare const useMenuChildren: <I extends TypeMenuItemProps = TypeMenuItemProps>
619
663
  declare const useSelectStateReducer: Required<UseSelectProps<TypeInternalItemProps>>["stateReducer"];
620
664
  declare const useSelectStateReducerForMulti: Required<UseSelectProps<TypeInternalItemProps>>["stateReducer"];
621
665
 
622
- 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, 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 TypeBaseAutocompleteProps, 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 TypeMenuLabelProps, 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 };
666
+ 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, 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 TypeBaseAutocompleteProps, 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 TypeMenuLabelProps, 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, menuAnimationConfig, menuPlacementOrigin, useMenu, useMenuChildren, useMenuContentContext, useMenuToggleContext, useNestedMenuContext, useSelectStateReducer, useSelectStateReducerForMulti };
package/dist/index.js CHANGED
@@ -152,6 +152,8 @@ __export(index_exports, {
152
152
  getChildrenFromMenuItems: () => getChildrenFromMenuItems,
153
153
  getSelectedItemIds: () => getSelectedItemIds,
154
154
  mapMenuItems: () => mapMenuItems,
155
+ menuAnimationConfig: () => menuAnimationConfig,
156
+ menuPlacementOrigin: () => menuPlacementOrigin,
155
157
  useMenu: () => useMenu,
156
158
  useMenuChildren: () => useMenuChildren,
157
159
  useMenuContentContext: () => useMenuContentContext,
@@ -2648,34 +2650,51 @@ var CustomPopoutContent = (0, import_styled_components11.default)(import_seeds_r
2648
2650
  margin-right: 0;
2649
2651
  overflow: hidden;
2650
2652
  `;
2653
+ var menuPlacementOrigin = {
2654
+ top: { originX: 0.5, originY: 1 },
2655
+ ["top-start"]: { originX: 0, originY: 1 },
2656
+ ["top-end"]: { originX: 1, originY: 1 },
2657
+ bottom: { originX: 0.5, originY: 0 },
2658
+ ["bottom-start"]: { originX: 0, originY: 0 },
2659
+ ["bottom-end"]: { originX: 1, originY: 0 },
2660
+ left: { originX: 1, originY: 0.5 },
2661
+ ["left-start"]: { originX: 1, originY: 0 },
2662
+ ["left-end"]: { originX: 1, originY: 1 },
2663
+ right: { originX: 0, originY: 0.5 },
2664
+ ["right-start"]: { originX: 0, originY: 0 },
2665
+ ["right-end"]: { originX: 0, originY: 1 }
2666
+ };
2651
2667
  var menuAnimationConfig = {
2652
2668
  layout: true,
2653
- initial: {
2654
- scale: 0,
2655
- opacity: 0,
2656
- originX: 0,
2657
- originY: 0
2658
- },
2659
- animate: {
2660
- opacity: 1,
2661
- scale: 1,
2662
- originX: 0,
2663
- originY: 0,
2664
- transition: {
2665
- type: "tween",
2666
- duration: MOTION_DURATION_FAST,
2667
- ease: "circOut"
2669
+ variants: {
2670
+ initial: (custom = { placement: "bottom" }) => ({
2671
+ ...menuPlacementOrigin[custom.placement],
2672
+ scale: 0,
2673
+ opacity: 0
2674
+ }),
2675
+ animate: (custom = { placement: "bottom" }) => ({
2676
+ ...menuPlacementOrigin[custom.placement],
2677
+ opacity: 1,
2678
+ scale: 1,
2679
+ transition: {
2680
+ type: "tween",
2681
+ duration: MOTION_DURATION_FAST,
2682
+ ease: "circOut"
2683
+ }
2684
+ }),
2685
+ exit: {
2686
+ opacity: 0,
2687
+ scale: 1,
2688
+ transition: {
2689
+ type: "tween",
2690
+ duration: MOTION_DURATION_FAST,
2691
+ ease: "circIn"
2692
+ }
2668
2693
  }
2669
2694
  },
2670
- exit: {
2671
- opacity: 0,
2672
- scale: 1,
2673
- transition: {
2674
- type: "tween",
2675
- duration: MOTION_DURATION_FAST,
2676
- ease: "circIn"
2677
- }
2678
- }
2695
+ initial: "initial",
2696
+ animate: "animate",
2697
+ exit: "exit"
2679
2698
  };
2680
2699
  var MenuPopout = ({
2681
2700
  content,
@@ -4244,6 +4263,7 @@ var NestedMenuPopout = ({
4244
4263
  return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4245
4264
  MenuPopout,
4246
4265
  {
4266
+ lockPlacement: true,
4247
4267
  onClose: () => {
4248
4268
  onClose?.();
4249
4269
  setTimeout(() => resetSelectedMenuPath?.(), 100);
@@ -4553,6 +4573,8 @@ var NestedMenu = ({
4553
4573
  getChildrenFromMenuItems,
4554
4574
  getSelectedItemIds,
4555
4575
  mapMenuItems,
4576
+ menuAnimationConfig,
4577
+ menuPlacementOrigin,
4556
4578
  useMenu,
4557
4579
  useMenuChildren,
4558
4580
  useMenuContentContext,