@hi-ui/menu 5.0.0-canary.2 → 5.0.0-canary.21

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/lib/esm/Menu.js CHANGED
@@ -8,11 +8,13 @@
8
8
  * LICENSE file in the root directory of this source tree.
9
9
  */
10
10
  import { __rest } from 'tslib';
11
- import React, { forwardRef, useState, useMemo, useEffect, useCallback, useLayoutEffect } from 'react';
11
+ import React, { forwardRef, useState, useMemo, useEffect, useRef, useCallback, useLayoutEffect } from 'react';
12
12
  import { getPrefixCls, cx } from '@hi-ui/classname';
13
13
  import { MenuUnfoldOutlined, MenuFoldOutlined } from '@hi-ui/icons';
14
14
  import { __DEV__ } from '@hi-ui/env';
15
15
  import { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';
16
+ import { useLocaleContext, useGlobalContext } from '@hi-ui/core';
17
+ import { useMergeSemantic } from '@hi-ui/use-merge-semantic';
16
18
  import Tooltip from '@hi-ui/tooltip';
17
19
  import { useUncontrolledToggle } from '@hi-ui/use-toggle';
18
20
  import { getTreeNodesWithChildren } from '@hi-ui/tree-utils';
@@ -32,11 +34,15 @@ var MENU_MORE_ID = "MENU_MORE_" + uuid();
32
34
  * 菜单
33
35
  */
34
36
  var Menu = /*#__PURE__*/forwardRef(function (_a, ref) {
37
+ var _b, _c;
35
38
  var _a$prefixCls = _a.prefixCls,
36
39
  prefixCls = _a$prefixCls === void 0 ? MENU_PREFIX : _a$prefixCls,
37
40
  _a$role = _a.role,
38
41
  role = _a$role === void 0 ? 'menu' : _a$role,
39
42
  className = _a.className,
43
+ style = _a.style,
44
+ classNamesProp = _a.classNames,
45
+ stylesProp = _a.styles,
40
46
  _a$data = _a.data,
41
47
  data = _a$data === void 0 ? NOOP_ARRAY : _a$data,
42
48
  fieldNames = _a.fieldNames,
@@ -67,12 +73,41 @@ var Menu = /*#__PURE__*/forwardRef(function (_a, ref) {
67
73
  render = _a.render,
68
74
  extraHeader = _a.extraHeader,
69
75
  onClick = _a.onClick,
70
- _a$size = _a.size,
71
- size = _a$size === void 0 ? 'lg' : _a$size,
72
- rest = __rest(_a, ["prefixCls", "role", "className", "data", "fieldNames", "placement", "showCollapse", "expandedType", "showAllSubMenus", "defaultExpandAll", "defaultExpandedIds", "expandedIds", "onExpand", "defaultActiveId", "activeId", "onClickSubMenu", "collapsed", "defaultCollapsed", "overlayClassName", "onCollapse", "footerRender", "render", "extraHeader", "onClick", "size"]);
76
+ sizeProp = _a.size,
77
+ _a$showTitleOnMini = _a.showTitleOnMini,
78
+ showTitleOnMini = _a$showTitleOnMini === void 0 ? false : _a$showTitleOnMini,
79
+ rest = __rest(_a, ["prefixCls", "role", "className", "style", "classNames", "styles", "data", "fieldNames", "placement", "showCollapse", "expandedType", "showAllSubMenus", "defaultExpandAll", "defaultExpandedIds", "expandedIds", "onExpand", "defaultActiveId", "activeId", "onClickSubMenu", "collapsed", "defaultCollapsed", "overlayClassName", "onCollapse", "footerRender", "render", "extraHeader", "onClick", "size", "showTitleOnMini"]);
80
+ var i18n = useLocaleContext();
73
81
  var _useUncontrolledState = useUncontrolledState(defaultActiveId, activeIdProp, onClick),
74
82
  activeId = _useUncontrolledState[0],
75
83
  updateActiveId = _useUncontrolledState[1];
84
+ var _useGlobalContext = useGlobalContext(),
85
+ globalSize = _useGlobalContext.size,
86
+ menuConfig = _useGlobalContext.menu;
87
+ var size = (_b = sizeProp !== null && sizeProp !== void 0 ? sizeProp : globalSize) !== null && _b !== void 0 ? _b : 'lg';
88
+ if (size === 'xs') {
89
+ size = 'sm';
90
+ }
91
+ var _useMergeSemantic = useMergeSemantic({
92
+ classNamesList: [menuConfig === null || menuConfig === void 0 ? void 0 : menuConfig.classNames, classNamesProp],
93
+ stylesList: [menuConfig === null || menuConfig === void 0 ? void 0 : menuConfig.styles, stylesProp],
94
+ info: {
95
+ props: Object.assign(Object.assign({}, rest), {
96
+ data: data,
97
+ placement: placement,
98
+ size: (_c = sizeProp !== null && sizeProp !== void 0 ? sizeProp : globalSize) !== null && _c !== void 0 ? _c : 'lg',
99
+ showCollapse: showCollapse,
100
+ expandedType: expandedType,
101
+ showAllSubMenus: showAllSubMenus,
102
+ defaultExpandAll: defaultExpandAll,
103
+ defaultCollapsed: defaultCollapsed,
104
+ collapsed: collapsed,
105
+ showTitleOnMini: showTitleOnMini
106
+ })
107
+ }
108
+ }),
109
+ classNames = _useMergeSemantic.classNames,
110
+ styles = _useMergeSemantic.styles;
76
111
  var _useState = useState(function () {
77
112
  return getAncestorIds(activeId, data);
78
113
  }),
@@ -91,6 +126,7 @@ var Menu = /*#__PURE__*/forwardRef(function (_a, ref) {
91
126
  }, expandedIdsProp, onExpand),
92
127
  expandedIds = _useUncontrolledState2[0],
93
128
  updateExpandedIds = _useUncontrolledState2[1];
129
+ var expandedIdsRef = useRef(expandedIds);
94
130
  var clickMenu = useCallback(function (id, raw) {
95
131
  updateActiveId(id, raw);
96
132
  }, [updateActiveId]);
@@ -99,14 +135,17 @@ var Menu = /*#__PURE__*/forwardRef(function (_a, ref) {
99
135
  return expandedId !== id;
100
136
  }) : expandedIds.concat(id);
101
137
  updateExpandedIds(nextExpandedIds);
138
+ expandedIdsRef.current = nextExpandedIds;
102
139
  if (onClickSubMenu) {
103
140
  onClickSubMenu(id, nextExpandedIds);
104
141
  }
105
142
  }, [onClickSubMenu, expandedIds, updateExpandedIds]);
106
143
  var closePopper = useCallback(function (id) {
107
- updateExpandedIds(expandedIds.filter(function (expandedId) {
144
+ var nextExpandedIds = expandedIds.filter(function (expandedId) {
108
145
  return expandedId !== id;
109
- }));
146
+ });
147
+ updateExpandedIds(nextExpandedIds);
148
+ expandedIdsRef.current = nextExpandedIds;
110
149
  }, [expandedIds, updateExpandedIds]);
111
150
  var closeAllPopper = useCallback(function () {
112
151
  updateExpandedIds([]);
@@ -139,6 +178,13 @@ var Menu = /*#__PURE__*/forwardRef(function (_a, ref) {
139
178
  setContainerWidth(width);
140
179
  }
141
180
  });
181
+ useEffect(function () {
182
+ if (mini) {
183
+ updateExpandedIds([]);
184
+ } else {
185
+ updateExpandedIds(expandedIdsRef.current);
186
+ }
187
+ }, [mini, updateExpandedIds]);
142
188
  var _useState4 = useState(0),
143
189
  tagMaxCount = _useState4[0],
144
190
  setTagMaxCount = _useState4[1];
@@ -187,11 +233,10 @@ var Menu = /*#__PURE__*/forwardRef(function (_a, ref) {
187
233
  }, [showVertical, getTagWidth, containerWidth, mergedTagList]);
188
234
  var renderFooter = function renderFooter() {
189
235
  var collapseNode = canToggle ? ( /*#__PURE__*/React.createElement("div", {
190
- className: cx(prefixCls + "__toggle"),
236
+ className: cx(prefixCls + "__toggle", classNames === null || classNames === void 0 ? void 0 : classNames.toggle),
237
+ style: styles === null || styles === void 0 ? void 0 : styles.toggle,
191
238
  onClick: function onClick() {
192
- miniToggleAction.not();
193
- // 关闭所有展开的子菜单,防止切换到 mini 模式后,子菜单还是展开的
194
- updateExpandedIds([]);
239
+ return miniToggleAction.not();
195
240
  }
196
241
  }, mini ? /*#__PURE__*/React.createElement(MenuUnfoldOutlined, null) : /*#__PURE__*/React.createElement(MenuFoldOutlined, null))) : null;
197
242
  return /*#__PURE__*/React.createElement(React.Fragment, null, isFunction(footerRender) ? footerRender({
@@ -201,22 +246,24 @@ var Menu = /*#__PURE__*/forwardRef(function (_a, ref) {
201
246
  };
202
247
  var renderItem = useCallback(function (menuItem, level) {
203
248
  // 显示缩略内容
204
- if (showMini && level === 1) {
249
+ if (showMini && level === 1 && !showTitleOnMini) {
205
250
  return renderMenuItemMini(menuItem);
206
251
  }
207
252
  return isFunction(render) ? render(menuItem, level) : menuItem.title;
208
- }, [render, showMini]);
209
- var cls = cx(prefixCls, className, prefixCls + "--" + placement, prefixCls + "--size-" + size, mini && prefixCls + "--mini", (expandedType === 'pop' || showAllSubMenus || mini) && prefixCls + "--popup");
253
+ }, [render, showMini, showTitleOnMini]);
254
+ var cls = cx(prefixCls, className, classNames === null || classNames === void 0 ? void 0 : classNames.root, prefixCls + "--" + placement, prefixCls + "--size-" + size, mini && prefixCls + "--mini", showTitleOnMini && prefixCls + "--show-title-on-mini", (expandedType === 'pop' || showAllSubMenus || mini) && prefixCls + "--popup");
210
255
  return /*#__PURE__*/React.createElement("div", Object.assign({
211
256
  ref: useMergeRefs(ref, setContainerElement),
212
257
  role: role,
213
- className: cls
258
+ className: cls,
259
+ style: Object.assign(Object.assign({}, style), styles === null || styles === void 0 ? void 0 : styles.root)
214
260
  }, rest), extraHeader, /*#__PURE__*/React.createElement(MenuContext.Provider, {
215
261
  value: {
216
262
  placement: placement,
217
263
  expandedType: expandedType,
218
264
  showAllSubMenus: showAllSubMenus,
219
265
  mini: mini,
266
+ showTitleOnMini: showTitleOnMini,
220
267
  clickMenu: clickMenu,
221
268
  clickSubMenu: clickSubMenu,
222
269
  closePopper: closePopper,
@@ -224,10 +271,13 @@ var Menu = /*#__PURE__*/forwardRef(function (_a, ref) {
224
271
  activeParents: activeParents,
225
272
  activeId: activeId,
226
273
  expandedIds: expandedIds,
227
- overlayClassName: overlayClassName
274
+ overlayClassName: overlayClassName,
275
+ semanticClassNames: classNames,
276
+ semanticStyles: styles
228
277
  }
229
278
  }, /*#__PURE__*/React.createElement("ul", {
230
- className: cx(prefixCls + "__wrapper")
279
+ className: cx(prefixCls + "__wrapper", classNames === null || classNames === void 0 ? void 0 : classNames.wrapper),
280
+ style: styles === null || styles === void 0 ? void 0 : styles.wrapper
231
281
  }, mergedTagList.map(function (item, index) {
232
282
  return showMini ? ( /*#__PURE__*/React.createElement(Tooltip, {
233
283
  title: item.title,
@@ -250,10 +300,11 @@ var Menu = /*#__PURE__*/forwardRef(function (_a, ref) {
250
300
  }), showVertical || restTagList.length === 0 ? null : ( /*#__PURE__*/React.createElement(MenuItem, {
251
301
  key: MENU_MORE_ID,
252
302
  id: MENU_MORE_ID,
253
- title: "\u66F4\u591A",
303
+ title: i18n.tabs.more,
254
304
  children: restTagList
255
305
  }))), /*#__PURE__*/React.createElement("div", {
256
- className: prefixCls + "__footer"
306
+ className: cx(prefixCls + "__footer", classNames === null || classNames === void 0 ? void 0 : classNames.footer),
307
+ style: styles === null || styles === void 0 ? void 0 : styles.footer
257
308
  }, renderFooter())));
258
309
  });
259
310
  if (__DEV__) {
@@ -56,16 +56,20 @@ var MenuItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
56
56
  clickSubMenu = _useContext.clickSubMenu,
57
57
  closeAllPopper = _useContext.closeAllPopper,
58
58
  activeParents = _useContext.activeParents,
59
- overlayClassName = _useContext.overlayClassName;
59
+ overlayClassName = _useContext.overlayClassName,
60
+ showTitleOnMini = _useContext.showTitleOnMini,
61
+ semanticClassNames = _useContext.semanticClassNames,
62
+ semanticStyles = _useContext.semanticStyles;
60
63
  var _parentIds = (parentIds || []).concat(id);
61
64
  var hasChildren = isArrayNonEmpty(children);
62
65
  var mergedRef = useMergeRefs(itemRef, ref);
63
66
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("li", {
64
67
  ref: mergedRef,
65
- className: cx(prefixCls + "-item", (_cx = {}, _cx[prefixCls + "-item__inner--mini"] = mini, _cx[prefixCls + "-item--disabled"] = disabled, _cx[prefixCls + "-item--active"] = placement === 'horizontal' && (activeId === id || (activeParents === null || activeParents === void 0 ? void 0 : activeParents.includes(id))) && level === 1, _cx), className),
66
- style: hidden ? hiddenStyle : undefined
68
+ className: cx(prefixCls + "-item", (_cx = {}, _cx[prefixCls + "-item__inner--mini"] = mini, _cx[prefixCls + "-item--disabled"] = disabled, _cx[prefixCls + "-item--active"] = placement === 'horizontal' && (activeId === id || (activeParents === null || activeParents === void 0 ? void 0 : activeParents.includes(id))) && level === 1, _cx), className, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.item),
69
+ style: Object.assign(Object.assign({}, hidden ? hiddenStyle : undefined), semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.item)
67
70
  }, /*#__PURE__*/React.createElement("div", {
68
- className: cx(prefixCls + "-item__inner", (_cx2 = {}, _cx2[prefixCls + "-item__inner--active"] = activeId === id, _cx2[prefixCls + "-item__inner--active-p"] = activeParents === null || activeParents === void 0 ? void 0 : activeParents.includes(id), _cx2[prefixCls + "-item__inner--expanded"] = expandedIds === null || expandedIds === void 0 ? void 0 : expandedIds.includes(id), _cx2[prefixCls + "-item__inner--hasIcon"] = icon, _cx2)),
71
+ className: cx(prefixCls + "-item__inner", (_cx2 = {}, _cx2[prefixCls + "-item__inner--active"] = activeId === id, _cx2[prefixCls + "-item__inner--active-p"] = activeParents === null || activeParents === void 0 ? void 0 : activeParents.includes(id), _cx2[prefixCls + "-item__inner--expanded"] = expandedIds === null || expandedIds === void 0 ? void 0 : expandedIds.includes(id), _cx2[prefixCls + "-item__inner--hasIcon"] = icon, _cx2), semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.itemInner),
72
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.itemInner,
69
73
  onClick: function onClick() {
70
74
  if (isArrayNonEmpty(children)) {
71
75
  !disabled && (clickSubMenu === null || clickSubMenu === void 0 ? void 0 : clickSubMenu(id));
@@ -79,36 +83,53 @@ var MenuItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
79
83
  }, placement === 'vertical' && expandedType === 'collapse' && !mini ? renderIndent({
80
84
  prefixCls: prefixCls + "-item",
81
85
  depth: level - 1
82
- }) : null, icon ? /*#__PURE__*/React.createElement("span", {
83
- className: prefixCls + "-item__icon"
84
- }, icon) : null, /*#__PURE__*/React.createElement("span", {
85
- className: prefixCls + "-item__content"
86
+ }) : null, icon ? ( /*#__PURE__*/React.createElement("span", {
87
+ className: cx(prefixCls + "-item__icon", semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.itemIcon),
88
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.itemIcon
89
+ }, icon)) : null, /*#__PURE__*/React.createElement("span", {
90
+ className: cx(prefixCls + "-item__content", semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.itemContent),
91
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.itemContent
86
92
  }, isFunction(render) ? render(Object.assign(Object.assign({}, raw), {
87
93
  id: id,
88
94
  icon: icon,
89
95
  title: title
90
96
  }), level) : title), hasChildren && !mini && placement === 'vertical' && expandedType === 'collapse' && !showAllSubMenus && (!disabled && (expandedIds === null || expandedIds === void 0 ? void 0 : expandedIds.includes(id)) ? ( /*#__PURE__*/React.createElement(Arrow, {
91
97
  prefixCls: prefixCls + "-item",
92
- direction: "up"
98
+ direction: "up",
99
+ className: semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.itemArrow,
100
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.itemArrow
93
101
  })) : ( /*#__PURE__*/React.createElement(Arrow, {
94
102
  prefixCls: prefixCls + "-item",
95
- direction: "down"
103
+ direction: "down",
104
+ className: semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.itemArrow,
105
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.itemArrow
96
106
  }))), hasChildren && mini && level > 1 && placement === 'vertical' ? ( /*#__PURE__*/React.createElement(Arrow, {
97
- prefixCls: prefixCls + "-item"
107
+ prefixCls: prefixCls + "-item",
108
+ className: semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.itemArrow,
109
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.itemArrow
98
110
  })) : null, hasChildren && !mini && placement === 'vertical' && (expandedType === 'pop' || showAllSubMenus) ? ( /*#__PURE__*/React.createElement(Arrow, {
99
- prefixCls: prefixCls + "-item"
111
+ prefixCls: prefixCls + "-item",
112
+ className: semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.itemArrow,
113
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.itemArrow
100
114
  })) : null, hasChildren && placement === 'horizontal' && level > 1 ? ( /*#__PURE__*/React.createElement(Arrow, {
101
- prefixCls: prefixCls + "-item"
115
+ prefixCls: prefixCls + "-item",
116
+ className: semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.itemArrow,
117
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.itemArrow
102
118
  })) : null, hasChildren && placement === 'horizontal' && level === 1 && (!disabled && (expandedIds === null || expandedIds === void 0 ? void 0 : expandedIds.includes(id)) ? ( /*#__PURE__*/React.createElement(Arrow, {
103
119
  prefixCls: prefixCls + "-item",
104
- direction: "up"
120
+ direction: "up",
121
+ className: semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.itemArrow,
122
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.itemArrow
105
123
  })) : ( /*#__PURE__*/React.createElement(Arrow, {
106
124
  prefixCls: prefixCls + "-item",
107
- direction: "down"
125
+ direction: "down",
126
+ className: semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.itemArrow,
127
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.itemArrow
108
128
  })))), hasChildren && placement === 'vertical' && !mini && !showAllSubMenus && expandedType === 'collapse' ? ( /*#__PURE__*/React.createElement(Expander, {
109
129
  visible: !disabled && !!(expandedIds === null || expandedIds === void 0 ? void 0 : expandedIds.includes(id))
110
130
  }, /*#__PURE__*/React.createElement("ul", {
111
- className: prefixCls + "-submenu"
131
+ className: cx(prefixCls + "-submenu", semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.submenu),
132
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.submenu
112
133
  }, children.map(function (child) {
113
134
  return /*#__PURE__*/React.createElement(MenuItem, Object.assign({}, child, {
114
135
  key: child.id,
@@ -122,13 +143,14 @@ var MenuItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
122
143
  visible: !!(expandedIds === null || expandedIds === void 0 ? void 0 : expandedIds.includes(id)),
123
144
  attachEl: itemRef.current,
124
145
  placement: 'right-start',
125
- gutterGap: 16,
146
+ gutterGap: showTitleOnMini ? 8 : 16,
126
147
  className: overlayClassName,
127
148
  onClose: function onClose() {
128
149
  closePopper === null || closePopper === void 0 ? void 0 : closePopper(id);
129
150
  }
130
151
  }, /*#__PURE__*/React.createElement("ul", {
131
- className: prefixCls + "-popmenu " + prefixCls + "--size-" + size
152
+ className: cx(prefixCls + "-popmenu", prefixCls + "--size-" + size, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.popmenu),
153
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.popmenu
132
154
  }, children.map(function (child) {
133
155
  return /*#__PURE__*/React.createElement(MenuItem, Object.assign({}, child, {
134
156
  key: child.id,
@@ -142,14 +164,15 @@ var MenuItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
142
164
  visible: !!(expandedIds === null || expandedIds === void 0 ? void 0 : expandedIds.includes(id)),
143
165
  attachEl: itemRef.current,
144
166
  placement: 'right-start',
145
- gutterGap: 16,
167
+ gutterGap: showTitleOnMini ? 12 : 16,
146
168
  disabledPortal: true,
147
169
  className: overlayClassName,
148
170
  onClose: function onClose() {
149
171
  closePopper === null || closePopper === void 0 ? void 0 : closePopper(id);
150
172
  }
151
173
  }, /*#__PURE__*/React.createElement("ul", {
152
- className: prefixCls + "-popmenu " + prefixCls + "--size-" + size
174
+ className: cx(prefixCls + "-popmenu", prefixCls + "--size-" + size, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.popmenu),
175
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.popmenu
153
176
  }, children.map(function (child) {
154
177
  return /*#__PURE__*/React.createElement(MenuItem, Object.assign({}, child, {
155
178
  key: child.id,
@@ -169,7 +192,8 @@ var MenuItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
169
192
  closePopper === null || closePopper === void 0 ? void 0 : closePopper(id);
170
193
  }
171
194
  }, /*#__PURE__*/React.createElement("ul", {
172
- className: prefixCls + "-popmenu " + prefixCls + "--size-" + size
195
+ className: cx(prefixCls + "-popmenu", prefixCls + "--size-" + size, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.popmenu),
196
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.popmenu
173
197
  }, children.map(function (child) {
174
198
  return /*#__PURE__*/React.createElement(MenuItem, Object.assign({}, child, {
175
199
  key: child.id,
@@ -190,7 +214,8 @@ var MenuItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
190
214
  closePopper === null || closePopper === void 0 ? void 0 : closePopper(id);
191
215
  }
192
216
  }, /*#__PURE__*/React.createElement("ul", {
193
- className: prefixCls + "-popmenu " + prefixCls + "--size-" + size
217
+ className: cx(prefixCls + "-popmenu", prefixCls + "--size-" + size, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.popmenu),
218
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.popmenu
194
219
  }, children.map(function (child) {
195
220
  return /*#__PURE__*/React.createElement(MenuItem, Object.assign({}, child, {
196
221
  key: child.id,
@@ -240,7 +265,8 @@ var MenuItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
240
265
  closePopper === null || closePopper === void 0 ? void 0 : closePopper(id);
241
266
  }
242
267
  }, /*#__PURE__*/React.createElement("ul", {
243
- className: prefixCls + "-popmenu " + prefixCls + "--size-" + size
268
+ className: cx(prefixCls + "-popmenu", prefixCls + "--size-" + size, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.popmenu),
269
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.popmenu
244
270
  }, children.map(function (child) {
245
271
  return /*#__PURE__*/React.createElement(MenuItem, Object.assign({}, child, {
246
272
  key: child.id,
@@ -261,7 +287,8 @@ var MenuItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
261
287
  closePopper === null || closePopper === void 0 ? void 0 : closePopper(id);
262
288
  }
263
289
  }, /*#__PURE__*/React.createElement("ul", {
264
- className: prefixCls + "-popmenu " + prefixCls + "--size-" + size
290
+ className: cx(prefixCls + "-popmenu", prefixCls + "--size-" + size, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.popmenu),
291
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.popmenu
265
292
  }, children.map(function (child) {
266
293
  return /*#__PURE__*/React.createElement(MenuItem, Object.assign({}, child, {
267
294
  key: child.id,
@@ -308,7 +335,9 @@ if (__DEV__) {
308
335
  }
309
336
  var Arrow = function Arrow(_ref2) {
310
337
  var prefixCls = _ref2.prefixCls,
311
- direction = _ref2.direction;
338
+ direction = _ref2.direction,
339
+ className = _ref2.className,
340
+ style = _ref2.style;
312
341
  var icon;
313
342
  switch (direction) {
314
343
  case 'up':
@@ -321,7 +350,8 @@ var Arrow = function Arrow(_ref2) {
321
350
  icon = /*#__PURE__*/React.createElement(RightOutlined, null);
322
351
  }
323
352
  return /*#__PURE__*/React.createElement("span", {
324
- className: prefixCls + "__arrow"
353
+ className: cx(prefixCls + "__arrow", className),
354
+ style: style
325
355
  }, icon);
326
356
  };
327
357
  /**