@elliemae/ds-menu-button 3.46.0-rc.1 → 3.46.0-rc.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. package/dist/cjs/config/useMenuButton.js +4 -17
  2. package/dist/cjs/config/useMenuButton.js.map +2 -2
  3. package/dist/cjs/config/useSplitInherithedProps.js +31 -15
  4. package/dist/cjs/config/useSplitInherithedProps.js.map +2 -2
  5. package/dist/cjs/index.js +2 -0
  6. package/dist/cjs/index.js.map +2 -2
  7. package/dist/cjs/parts/DSFlyoutMenu/DSFlyoutMenu.js +11 -1
  8. package/dist/cjs/parts/DSFlyoutMenu/DSFlyoutMenu.js.map +2 -2
  9. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/config/useAdvancedValidation.js +86 -0
  10. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/config/useAdvancedValidation.js.map +7 -0
  11. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/config/useMenuBehaviouralContextProvider.js +2 -0
  12. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/config/useMenuBehaviouralContextProvider.js.map +2 -2
  13. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/config/useMenuItemEventsHandlers.js +56 -29
  14. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/config/useMenuItemEventsHandlers.js.map +2 -2
  15. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/react-desc-prop-types.js +3 -0
  16. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/react-desc-prop-types.js.map +2 -2
  17. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/utils/multipleSelectionHelpers.js +14 -14
  18. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/utils/multipleSelectionHelpers.js.map +1 -1
  19. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/utils/singleSelectionHelpers.js +2 -2
  20. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/utils/singleSelectionHelpers.js.map +1 -1
  21. package/dist/cjs/parts/DSMenuItemRendererFactory/ActivableMenuItem.js +9 -4
  22. package/dist/cjs/parts/DSMenuItemRendererFactory/ActivableMenuItem.js.map +2 -2
  23. package/dist/cjs/parts/DSMenuItemRendererFactory/ActivableWithSubmenuMenuItem.js +9 -4
  24. package/dist/cjs/parts/DSMenuItemRendererFactory/ActivableWithSubmenuMenuItem.js.map +2 -2
  25. package/dist/cjs/parts/DSMenuItemRendererFactory/MultipleSelectMenuItem.js +11 -6
  26. package/dist/cjs/parts/DSMenuItemRendererFactory/MultipleSelectMenuItem.js.map +2 -2
  27. package/dist/cjs/parts/DSMenuItemRendererFactory/MultipleSelectWithSubmenuMenuItem.js +14 -7
  28. package/dist/cjs/parts/DSMenuItemRendererFactory/MultipleSelectWithSubmenuMenuItem.js.map +2 -2
  29. package/dist/cjs/parts/DSMenuItemRendererFactory/SingleSelectMenuItem.js +11 -6
  30. package/dist/cjs/parts/DSMenuItemRendererFactory/SingleSelectMenuItem.js.map +2 -2
  31. package/dist/cjs/parts/DSMenuItemRendererFactory/SingleSelectWithSubmenuMenuItem.js +11 -6
  32. package/dist/cjs/parts/DSMenuItemRendererFactory/SingleSelectWithSubmenuMenuItem.js.map +2 -2
  33. package/dist/cjs/parts/DSMenuItemRendererFactory/WithSubmenuMenuItem.js +9 -4
  34. package/dist/cjs/parts/DSMenuItemRendererFactory/WithSubmenuMenuItem.js.map +2 -2
  35. package/dist/cjs/react-desc-prop-types.js +9 -11
  36. package/dist/cjs/react-desc-prop-types.js.map +2 -2
  37. package/dist/cjs/utils/nodesTypeguardsAndGetters.js +18 -56
  38. package/dist/cjs/utils/nodesTypeguardsAndGetters.js.map +2 -2
  39. package/dist/esm/config/useMenuButton.js +4 -17
  40. package/dist/esm/config/useMenuButton.js.map +2 -2
  41. package/dist/esm/config/useSplitInherithedProps.js +31 -15
  42. package/dist/esm/config/useSplitInherithedProps.js.map +2 -2
  43. package/dist/esm/index.js +2 -0
  44. package/dist/esm/index.js.map +2 -2
  45. package/dist/esm/parts/DSFlyoutMenu/DSFlyoutMenu.js +11 -1
  46. package/dist/esm/parts/DSFlyoutMenu/DSFlyoutMenu.js.map +2 -2
  47. package/dist/esm/parts/DSMenuBehaviouralContextProvider/config/useAdvancedValidation.js +56 -0
  48. package/dist/esm/parts/DSMenuBehaviouralContextProvider/config/useAdvancedValidation.js.map +7 -0
  49. package/dist/esm/parts/DSMenuBehaviouralContextProvider/config/useMenuBehaviouralContextProvider.js +2 -0
  50. package/dist/esm/parts/DSMenuBehaviouralContextProvider/config/useMenuBehaviouralContextProvider.js.map +2 -2
  51. package/dist/esm/parts/DSMenuBehaviouralContextProvider/config/useMenuItemEventsHandlers.js +56 -29
  52. package/dist/esm/parts/DSMenuBehaviouralContextProvider/config/useMenuItemEventsHandlers.js.map +2 -2
  53. package/dist/esm/parts/DSMenuBehaviouralContextProvider/react-desc-prop-types.js +3 -0
  54. package/dist/esm/parts/DSMenuBehaviouralContextProvider/react-desc-prop-types.js.map +2 -2
  55. package/dist/esm/parts/DSMenuBehaviouralContextProvider/utils/multipleSelectionHelpers.js +14 -14
  56. package/dist/esm/parts/DSMenuBehaviouralContextProvider/utils/multipleSelectionHelpers.js.map +1 -1
  57. package/dist/esm/parts/DSMenuBehaviouralContextProvider/utils/singleSelectionHelpers.js +2 -2
  58. package/dist/esm/parts/DSMenuBehaviouralContextProvider/utils/singleSelectionHelpers.js.map +1 -1
  59. package/dist/esm/parts/DSMenuItemRendererFactory/ActivableMenuItem.js +9 -4
  60. package/dist/esm/parts/DSMenuItemRendererFactory/ActivableMenuItem.js.map +2 -2
  61. package/dist/esm/parts/DSMenuItemRendererFactory/ActivableWithSubmenuMenuItem.js +9 -4
  62. package/dist/esm/parts/DSMenuItemRendererFactory/ActivableWithSubmenuMenuItem.js.map +2 -2
  63. package/dist/esm/parts/DSMenuItemRendererFactory/MultipleSelectMenuItem.js +11 -6
  64. package/dist/esm/parts/DSMenuItemRendererFactory/MultipleSelectMenuItem.js.map +2 -2
  65. package/dist/esm/parts/DSMenuItemRendererFactory/MultipleSelectWithSubmenuMenuItem.js +14 -7
  66. package/dist/esm/parts/DSMenuItemRendererFactory/MultipleSelectWithSubmenuMenuItem.js.map +2 -2
  67. package/dist/esm/parts/DSMenuItemRendererFactory/SingleSelectMenuItem.js +11 -6
  68. package/dist/esm/parts/DSMenuItemRendererFactory/SingleSelectMenuItem.js.map +2 -2
  69. package/dist/esm/parts/DSMenuItemRendererFactory/SingleSelectWithSubmenuMenuItem.js +11 -6
  70. package/dist/esm/parts/DSMenuItemRendererFactory/SingleSelectWithSubmenuMenuItem.js.map +2 -2
  71. package/dist/esm/parts/DSMenuItemRendererFactory/WithSubmenuMenuItem.js +9 -4
  72. package/dist/esm/parts/DSMenuItemRendererFactory/WithSubmenuMenuItem.js.map +2 -2
  73. package/dist/esm/react-desc-prop-types.js +9 -11
  74. package/dist/esm/react-desc-prop-types.js.map +2 -2
  75. package/dist/esm/utils/nodesTypeguardsAndGetters.js +18 -56
  76. package/dist/esm/utils/nodesTypeguardsAndGetters.js.map +2 -2
  77. package/dist/types/config/useSplitInherithedProps.d.ts +8 -8
  78. package/dist/types/index.d.ts +1 -1
  79. package/dist/types/parts/DSMenuBehaviouralContextProvider/config/useAdvancedValidation.d.ts +6 -0
  80. package/dist/types/parts/DSMenuBehaviouralContextProvider/config/useMenuItemEventsHandlers.d.ts +2 -1
  81. package/dist/types/parts/DSMenuBehaviouralContextProvider/react-desc-prop-types.d.ts +1 -0
  82. package/dist/types/parts/DSMenuBehaviouralContextProvider/utils/multipleSelectionHelpers.d.ts +3 -3
  83. package/dist/types/parts/DSMenuBehaviouralContextProvider/utils/singleSelectionHelpers.d.ts +2 -2
  84. package/dist/types/react-desc-prop-types.d.ts +15 -15
  85. package/dist/types/utils/nodesTypeguardsAndGetters.d.ts +113 -1
  86. package/package.json +13 -13
@@ -1,6 +1,6 @@
1
1
  import { type DSMenuButtonT } from '../../../react-desc-prop-types.js';
2
- export declare const getIsMultipleSelectNodeWithSubmenuSelected: ({ itemNode, selectedItems, }: {
2
+ export declare const getIsMultipleSelectNodeWithSubmenuSelected: ({ itemNode, selectedNodes, }: {
3
3
  itemNode: DSMenuButtonT.MenuNodeMultipleSelectWithSubmenuItem;
4
- selectedItems: DSMenuButtonT.SelectionableMenuNodes[];
4
+ selectedNodes: DSMenuButtonT.SelectionableMenuNodes[];
5
5
  }) => boolean | "mixed";
6
- export declare const getNewSelectionMultipleSelect: (selectedItems: DSMenuButtonT.SelectionableMenuNodes[], selectedItem: DSMenuButtonT.MultipleSelectionableMenuNodes) => DSMenuButtonT.SelectionableMenuNodes[];
6
+ export declare const getNewSelectionMultipleSelect: (selectedNodes: DSMenuButtonT.SelectionableMenuNodes[], selectedItem: DSMenuButtonT.MultipleSelectionableMenuNodes) => DSMenuButtonT.SelectionableMenuNodes[];
@@ -6,8 +6,8 @@ import { type DSMenuButtonT } from '../../../react-desc-prop-types.js';
6
6
  * the selection must be propagated because
7
7
  * a single-select within a single-select-with-submenu can't be selected without implying the selection of the parent single-select-with-submenu
8
8
  *
9
- * @param selectedItems - the current selected items
9
+ * @param selectedNodes - the current selected items
10
10
  * @param selectedItem - the newly selected item
11
11
  * @returns DSMenuButtonT.SelectionableMenuNodes[] - the new selection
12
12
  */
13
- export declare const getNewSelectionSingleSelect: (selectedItems: DSMenuButtonT.SelectionableMenuNodes[], selectedItem: DSMenuButtonT.MenuNodeSingleSelectItem | DSMenuButtonT.MenuNodeSingleSelectWithSubmenuItem) => DSMenuButtonT.SelectionableMenuNodes[];
13
+ export declare const getNewSelectionSingleSelect: (selectedNodes: DSMenuButtonT.SelectionableMenuNodes[], selectedItem: DSMenuButtonT.MenuNodeSingleSelectItem | DSMenuButtonT.MenuNodeSingleSelectWithSubmenuItem) => DSMenuButtonT.SelectionableMenuNodes[];
@@ -124,6 +124,7 @@ export declare namespace DSMenuButtonT {
124
124
  }
125
125
  type MenuItemInterface = SeparatorItem | ActivableItem | ActionableWithSubmenuItem | SkeletonItem | MultipleSelectItem | MultiSelectWithSubmenuItem | WithSubmenuItem | GroupItem;
126
126
  type PseudoFocusableItemInterface = ActivableItem | ActionableWithSubmenuItem | SkeletonItem | MultipleSelectItem | MultiSelectWithSubmenuItem | WithSubmenuItem | SingleSelectItem | SingleSelectWithSubmenuItem;
127
+ type SelectionableMenuItemInterface = MultipleSelectItem | MultiSelectWithSubmenuItem | SingleSelectItem | SingleSelectWithSubmenuItem;
127
128
  type MenuNodeRootItem = UseDSTreeT.TreeNode<RootItem>;
128
129
  type MenuNodeSeparatorItem = UseDSTreeT.TreeNode<SeparatorItem>;
129
130
  type MenuNodeActivableItem = UseDSTreeT.TreeNode<ActivableItem>;
@@ -138,24 +139,15 @@ export declare namespace DSMenuButtonT {
138
139
  type MenuNode = MenuNodeSeparatorItem | MenuNodeActivableItem | MenuNodeActivableWithSubmenuItem | MenuNodeSkeletonItem | MenuNodeMultipleSelectItem | MenuNodeMultipleSelectWithSubmenuItem | MenuNodeWithSubmenuItem | MenuNodeSingleSelectItem | MenuNodeSingleSelectWithSubmenuItem | MenuNodeGroupItem;
139
140
  type PseudoFocusableMenuNodes = MenuNodeActivableItem | MenuNodeActivableWithSubmenuItem | MenuNodeSkeletonItem | MenuNodeSingleSelectItem | MenuNodeMultipleSelectItem | MenuNodeMultipleSelectWithSubmenuItem | MenuNodeWithSubmenuItem | MenuNodeSingleSelectWithSubmenuItem;
140
141
  type MenuNodesAllowedToHaveChildren = MenuNodeRootItem | MenuNodeWithSubmenuItem | MenuNodeGroupItem | MenuNodeActivableWithSubmenuItem | MenuNodeMultipleSelectWithSubmenuItem | MenuNodeSingleSelectWithSubmenuItem;
141
- type ItemRendererT = React.ComponentType<{
142
- itemNode: MenuNode;
143
- }>;
144
142
  type SelectionableMenuNodes = DSMenuButtonT.MenuNodeMultipleSelectItem | DSMenuButtonT.MenuNodeMultipleSelectWithSubmenuItem | DSMenuButtonT.MenuNodeSingleSelectItem | DSMenuButtonT.MenuNodeSingleSelectWithSubmenuItem;
145
143
  type MultipleSelectionableMenuNodes = DSMenuButtonT.MenuNodeMultipleSelectItem | DSMenuButtonT.MenuNodeMultipleSelectWithSubmenuItem;
146
144
  type SingleSelectionableMenuNodes = DSMenuButtonT.MenuNodeSingleSelectItem | DSMenuButtonT.MenuNodeSingleSelectWithSubmenuItem;
147
145
  type WithSubmenuMenuNodes = DSMenuButtonT.MenuNodeWithSubmenuItem | DSMenuButtonT.MenuNodeActivableWithSubmenuItem | DSMenuButtonT.MenuNodeMultipleSelectWithSubmenuItem | DSMenuButtonT.MenuNodeSingleSelectWithSubmenuItem;
148
146
  type SelectionablesWithSubmenuMenuNodes = DSMenuButtonT.MenuNodeMultipleSelectWithSubmenuItem | DSMenuButtonT.MenuNodeSingleSelectWithSubmenuItem;
147
+ type ItemRendererT = React.ComponentType<{
148
+ itemNode: MenuNode;
149
+ }>;
149
150
  interface MenuBehaviouralLayerRequiredProps {
150
- selectedItems: SelectionableMenuNodes[];
151
- onItemSelected: (newSelection: SelectionableMenuNodes[], metainfo: {
152
- itemNode: DSMenuButtonT.SelectionableMenuNodes;
153
- event?: React.SyntheticEvent;
154
- }) => void | TypescriptHelpersT.StateSetter<DSMenuButtonT.SelectionableMenuNodes[]>;
155
- onActivateItem: (itemNode: DSMenuButtonT.PseudoFocusableMenuNodes, metainfo: {
156
- itemNode: DSMenuButtonT.PseudoFocusableMenuNodes;
157
- event?: React.SyntheticEvent;
158
- }) => void;
159
151
  }
160
152
  interface MenuSpecificRequiredProps {
161
153
  }
@@ -173,13 +165,20 @@ export declare namespace DSMenuButtonT {
173
165
  onSubmenuToggle: (nextOpenedSubmenus: Record<string, boolean>, submenu: MenuItemInterface, e: React.MouseEvent | React.KeyboardEvent) => void;
174
166
  isLoading: boolean;
175
167
  isSkeleton: boolean;
176
- selectedOptions: Record<string, boolean>;
177
168
  }
178
169
  interface ButtonInheiredDefaultProps extends Omit<DSButtonV3T.DefaultProps, keyof MenuSpecifiDefaultProps> {
179
170
  }
180
171
  interface DefaultProps extends MenuSpecifiDefaultProps, ButtonInheiredDefaultProps, MenuBehaviouralLayerDefaultProps {
181
172
  }
182
173
  interface MenuBehaviouralLayerOptionalProps {
174
+ onItemSelected?: (newSelection: SelectionableMenuNodes[], metainfo: {
175
+ itemNode: DSMenuButtonT.SelectionableMenuNodes;
176
+ event?: React.SyntheticEvent;
177
+ }) => void | TypescriptHelpersT.StateSetter<DSMenuButtonT.SelectionableMenuNodes[]>;
178
+ onActivateItem?: (itemNode: DSMenuButtonT.PseudoFocusableMenuNodes, metainfo: {
179
+ itemNode: DSMenuButtonT.PseudoFocusableMenuNodes;
180
+ event?: React.SyntheticEvent;
181
+ }) => void;
183
182
  onOpen?: () => void;
184
183
  onClose?: () => void;
185
184
  onDisplayedSubmenuChange?: (newOpenedItems: DSMenuButtonT.WithSubmenuMenuNodes[], metainfo: {
@@ -193,6 +192,7 @@ export declare namespace DSMenuButtonT {
193
192
  interface ButtonInheritedOptionalProps extends Omit<DSButtonV3T.OptionalProps, keyof MenuSpecificOptionalProps> {
194
193
  }
195
194
  interface OptionalProps extends MenuSpecificOptionalProps, ButtonInheritedOptionalProps, MenuBehaviouralLayerOptionalProps, TypescriptHelpersT.PropsForGlobalOnSlots<typeof DSMenuButtonName, typeof MENU_BUTTON_SLOTS> {
195
+ selectedItems?: SelectionableMenuNodes[] | SelectionableMenuItemInterface[];
196
196
  }
197
197
  interface MenuBehaviouralLayerProps extends Partial<MenuBehaviouralLayerDefaultProps>, MenuBehaviouralLayerOptionalProps, MenuBehaviouralLayerRequiredProps {
198
198
  }
@@ -200,7 +200,7 @@ export declare namespace DSMenuButtonT {
200
200
  }
201
201
  interface ButtonInheritedProps extends Omit<DSButtonV3T.Props, keyof MenuSpecificProps> {
202
202
  }
203
- interface Props extends RequiredProps, Partial<DefaultProps>, OptionalProps {
203
+ interface Props extends RequiredProps, Partial<DefaultProps>, OptionalProps, Omit<DSButtonV3T.Props, keyof RequiredProps | keyof DefaultProps | keyof OptionalProps> {
204
204
  }
205
205
  interface MenuBehaviouralLayerInternalProps extends MenuBehaviouralLayerDefaultProps, MenuBehaviouralLayerOptionalProps, MenuBehaviouralLayerRequiredProps {
206
206
  }
@@ -208,7 +208,7 @@ export declare namespace DSMenuButtonT {
208
208
  }
209
209
  interface ButtonInheritedInternalProps extends Omit<DSButtonV3T.InternalProps, keyof MenuSpecificInternalProps> {
210
210
  }
211
- interface InternalProps extends RequiredProps, DefaultProps, OptionalProps {
211
+ interface InternalProps extends RequiredProps, DefaultProps, OptionalProps, Omit<DSButtonV3T.Props, keyof RequiredProps | keyof DefaultProps | keyof OptionalProps> {
212
212
  }
213
213
  }
214
214
  export declare const defaultProps: DSMenuButtonT.MenuSpecifiDefaultProps;
@@ -1,22 +1,134 @@
1
1
  import { type DSMenuButtonT } from '../react-desc-prop-types.js';
2
+ /**
3
+ * Heuristic to determine if the selected item is an item or a node.
4
+ * Not perfect because JavaScript is not typed.
5
+ * If app devs provide an object that matches all of those conditions, it's an edge case the app devs should handle.
6
+ * @param {unknown} item - The item to check.
7
+ * @returns {boolean} - True if the item is (heuristically) a menu node, false otherwise.
8
+ */
9
+ export declare const isObjectAMenuNode: (item: unknown) => item is DSMenuButtonT.MenuNode;
10
+ /**
11
+ * Checks if the item is an activable node.
12
+ * @param {unknown} item - The item to check.
13
+ * @returns {boolean} - True if the item is an activable node, false otherwise.
14
+ */
2
15
  export declare const isActivableNode: (item: unknown) => item is DSMenuButtonT.MenuNodeActivableItem;
3
- export declare const isActivableWithSubmenuNode: (item: unknown) => item is DSMenuButtonT.MenuNodeActivableWithSubmenuItem;
16
+ /**
17
+ * Checks if the item is a skeleton node.
18
+ * @param {unknown} item - The item to check.
19
+ * @returns {boolean} - True if the item is a skeleton node, false otherwise.
20
+ */
4
21
  export declare const isSkeletonNode: (item: unknown) => item is DSMenuButtonT.MenuNodeSkeletonItem;
22
+ /**
23
+ * Checks if the item is a multiple select only node.
24
+ * @param {unknown} item - The item to check.
25
+ * @returns {boolean} - True if the item is a multiple select only node, false otherwise.
26
+ */
5
27
  export declare const isMultipleSelectOnlyNode: (item: unknown) => item is DSMenuButtonT.MenuNodeMultipleSelectItem;
28
+ /**
29
+ * Checks if the item is a multiple select node with a submenu.
30
+ * @param {unknown} item - The item to check.
31
+ * @returns {boolean} - True if the item is a multiple select node with a submenu, false otherwise.
32
+ */
6
33
  export declare const isMultipleSelectWithSubmenuNode: (item: unknown) => item is DSMenuButtonT.MenuNodeMultipleSelectWithSubmenuItem;
34
+ /**
35
+ * Checks if the item is a multiple select node.
36
+ * @param {unknown} item - The item to check.
37
+ * @returns {boolean} - True if the item is a multiple select node, false otherwise.
38
+ */
7
39
  export declare const isMultipleSelectNode: (item: unknown) => item is DSMenuButtonT.MultipleSelectionableMenuNodes;
40
+ /**
41
+ * Checks if the item is a single select only node.
42
+ * @param {unknown} item - The item to check.
43
+ * @returns {boolean} - True if the item is a single select only node, false otherwise.
44
+ */
8
45
  export declare const isSingleSelectOnlyNode: (item: unknown) => item is DSMenuButtonT.MenuNodeSingleSelectItem;
46
+ /**
47
+ * Checks if the item is a single select node with a submenu.
48
+ * @param {unknown} item - The item to check.
49
+ * @returns {boolean} - True if the item is a single select node with a submenu, false otherwise.
50
+ */
9
51
  export declare const isSingleSelectNodeWithSubmenu: (item: unknown) => item is DSMenuButtonT.MenuNodeSingleSelectWithSubmenuItem;
52
+ /**
53
+ * Checks if the item is a single select node.
54
+ * @param {unknown} item - The item to check.
55
+ * @returns {boolean} - True if the item is a single select node, false otherwise.
56
+ */
10
57
  export declare const isSingleSelectNode: (item: unknown) => item is DSMenuButtonT.SingleSelectionableMenuNodes;
58
+ /**
59
+ * Checks if the item is a selectionable node.
60
+ * @param {unknown} item - The item to check.
61
+ * @returns {boolean} - True if the item is a selectionable node, false otherwise.
62
+ */
11
63
  export declare const isSelectionableNode: (item: unknown) => item is DSMenuButtonT.SelectionableMenuNodes;
64
+ /**
65
+ * Gets all selectionable nodes from the tree.
66
+ * @param {DSMenuButtonT.MenuNode} tree - The tree to search.
67
+ * @returns {DSMenuButtonT.SelectionableMenuNodes[]} - An array of selectionable nodes.
68
+ */
12
69
  export declare const getSelectionableNodes: (tree: DSMenuButtonT.MenuNode) => DSMenuButtonT.SelectionableMenuNodes[];
70
+ /**
71
+ * Checks if the item is a node with a submenu (and nothing else).
72
+ * @param {unknown} item - The item to check.
73
+ * @returns {boolean} - True if the item is a node with a submenu, false otherwise.
74
+ */
13
75
  export declare const isWithSubmenuOnlyNode: (item: unknown) => item is DSMenuButtonT.MenuNodeWithSubmenuItem;
76
+ /**
77
+ * Checks if the item is a selectionable node with a submenu.
78
+ * @param {unknown} item - The item to check.
79
+ * @returns {boolean} - True if the item is a selectionable node with a submenu, false otherwise.
80
+ */
14
81
  export declare const isSelectionableWithSubmenuNode: (item: unknown) => item is DSMenuButtonT.SelectionablesWithSubmenuMenuNodes;
82
+ /**
83
+ * Checks if the item is an activable node with a submenu.
84
+ * @param {unknown} item - The item to check.
85
+ * @returns {boolean} - True if the item is an activable node with a submenu, false otherwise.
86
+ */
87
+ export declare const isActivableWithSubmenuNode: (item: unknown) => item is DSMenuButtonT.MenuNodeActivableWithSubmenuItem;
88
+ /**
89
+ * Checks if the item is a node with a submenu.
90
+ * @param {unknown} item - The item to check.
91
+ * @returns {boolean} - True if the item is a node with a submenu, false otherwise.
92
+ */
15
93
  export declare const isWithSubmenuNode: (item: unknown) => item is DSMenuButtonT.WithSubmenuMenuNodes;
94
+ /**
95
+ * Gets all nodes with a submenu from the tree.
96
+ * @param {DSMenuButtonT.MenuNode} tree - The tree to search.
97
+ * @returns {DSMenuButtonT.PseudoFocusableMenuNodes[]} - An array of nodes with a submenu.
98
+ */
16
99
  export declare const getWithSubmenuNodes: (tree: DSMenuButtonT.MenuNode) => DSMenuButtonT.PseudoFocusableMenuNodes[];
100
+ /**
101
+ * Checks if the item is a node that can be focused.
102
+ * @param {unknown} item - The item to check.
103
+ * @returns {boolean} - True if the item is a node that can be focused, false otherwise.
104
+ */
17
105
  export declare const isFocusableNode: (item: unknown) => item is DSMenuButtonT.PseudoFocusableMenuNodes;
106
+ /**
107
+ * Gets all nodes that can be focused from the tree.
108
+ * @param {DSMenuButtonT.MenuNode} tree - The tree to search.
109
+ * @returns {DSMenuButtonT.PseudoFocusableMenuNodes[]} - An array of nodes that can be focused.
110
+ */
18
111
  export declare const getFocusableNodes: (tree: DSMenuButtonT.MenuNode) => DSMenuButtonT.PseudoFocusableMenuNodes[];
112
+ /**
113
+ * Checks if the item is a separator node.
114
+ * @param {unknown} item - The item to check.
115
+ * @returns {boolean} - True if the item is a separator node, false otherwise.
116
+ */
19
117
  export declare const isSeparatorNode: (item: unknown) => item is DSMenuButtonT.MenuNodeSeparatorItem;
118
+ /**
119
+ * Checks if the item is a group node.
120
+ * @param {unknown} item - The item to check.
121
+ * @returns {boolean} - True if the item is a group node, false otherwise.
122
+ */
20
123
  export declare const isGroup: (item: unknown) => item is DSMenuButtonT.MenuNodeGroupItem;
124
+ /**
125
+ * Checks if the given item is a root node of the menu.
126
+ * @param {DSMenuButtonT.MenuNode} tree - The tree to search.
127
+ * @returns {DSMenuButtonT.PseudoFocusableMenuNodes[]} - An array of nodes that can be focused.
128
+ * @remarks
129
+ * The root item is not a renderable item and must always be treated with special care.
130
+ *
131
+ * This function uses a hardcoded string to identify the root item.
132
+ */
21
133
  export declare const isRootNode: (item: unknown) => item is DSMenuButtonT.MenuNodeRootItem;
22
134
  export declare const isMenuNodeAllowedToHaveChildren: (item: unknown) => item is DSMenuButtonT.MenuNodesAllowedToHaveChildren;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/ds-menu-button",
3
- "version": "3.46.0-rc.1",
3
+ "version": "3.46.0-rc.3",
4
4
  "license": "MIT",
5
5
  "description": "ICE MT - Dimsum - Menu Button",
6
6
  "files": [
@@ -37,22 +37,22 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@xstyled/styled-components": "~3.6.0",
40
- "@elliemae/ds-button-v2": "3.46.0-rc.1",
41
- "@elliemae/ds-hooks-on-blur-out": "3.46.0-rc.1",
42
- "@elliemae/ds-grid": "3.46.0-rc.1",
43
- "@elliemae/ds-floating-context": "3.46.0-rc.1",
44
- "@elliemae/ds-menu-items-commons": "3.46.0-rc.1",
45
- "@elliemae/ds-icons": "3.46.0-rc.1",
46
- "@elliemae/ds-props-helpers": "3.46.0-rc.1",
47
- "@elliemae/ds-system": "3.46.0-rc.1",
48
- "@elliemae/ds-tree-model": "3.46.0-rc.1"
40
+ "@elliemae/ds-button-v2": "3.46.0-rc.3",
41
+ "@elliemae/ds-floating-context": "3.46.0-rc.3",
42
+ "@elliemae/ds-grid": "3.46.0-rc.3",
43
+ "@elliemae/ds-hooks-on-blur-out": "3.46.0-rc.3",
44
+ "@elliemae/ds-icons": "3.46.0-rc.3",
45
+ "@elliemae/ds-menu-items-commons": "3.46.0-rc.3",
46
+ "@elliemae/ds-props-helpers": "3.46.0-rc.3",
47
+ "@elliemae/ds-system": "3.46.0-rc.3",
48
+ "@elliemae/ds-tree-model": "3.46.0-rc.3"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@elliemae/pui-cli": "9.0.0-next.50",
52
52
  "styled-components": "~5.3.9",
53
- "@elliemae/ds-dropdownmenu-v2": "3.46.0-rc.1",
54
- "@elliemae/ds-monorepo-devops": "3.46.0-rc.1",
55
- "@elliemae/ds-typescript-helpers": "3.46.0-rc.1"
53
+ "@elliemae/ds-dropdownmenu-v2": "3.46.0-rc.3",
54
+ "@elliemae/ds-monorepo-devops": "3.46.0-rc.3",
55
+ "@elliemae/ds-typescript-helpers": "3.46.0-rc.3"
56
56
  },
57
57
  "peerDependencies": {
58
58
  "@testing-library/jest-dom": "~5.16.4",