@hi-ui/dropdown 4.0.6 → 4.1.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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @hi-ui/dropdown
2
2
 
3
+ ## 4.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#2592](https://github.com/XiaoMi/hiui/pull/2592) [`4a903b331`](https://github.com/XiaoMi/hiui/commit/4a903b33146db140a2c8edd6951385ad9a6fcdde) Thanks [@zyprepare](https://github.com/zyprepare)! - feat: add size api
8
+
3
9
  ## 4.0.6
4
10
 
5
11
  ### Patch Changes
@@ -52,11 +52,6 @@ var _prefix = classname.getPrefixCls(_role);
52
52
  var DEFAULT_DATA = [];
53
53
  /**
54
54
  * 下拉菜单
55
- *
56
- * TODO:
57
- * 1. 支持自定义icon
58
- * 2. 支持 titleRender
59
- * 3. 支持 onClick 阻止默认行为关闭
60
55
  */
61
56
 
62
57
  var Dropdown = /*#__PURE__*/React.forwardRef(function (_a, ref) {
@@ -74,7 +69,9 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (_a, ref) {
74
69
  _onClick = _a.onClick,
75
70
  onButtonClick = _a.onButtonClick,
76
71
  overlayClassName = _a.overlayClassName,
77
- rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children", "data", "title", "type", "onClick", "onButtonClick", "overlayClassName"]);
72
+ _a$size = _a.size,
73
+ size = _a$size === void 0 ? 'lg' : _a$size,
74
+ rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children", "data", "title", "type", "onClick", "onButtonClick", "overlayClassName", "size"]);
78
75
 
79
76
  var _b = useDropdown.useDropdown(rest),
80
77
  rootProps = _b.rootProps,
@@ -91,7 +88,8 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (_a, ref) {
91
88
  var menu = typeAssertion.isArrayNonEmpty(item.children) ? /*#__PURE__*/React__default["default"].createElement(DropdownMenu, {
92
89
  overlay: {
93
90
  gutterGap: 16
94
- }
91
+ },
92
+ size: size
95
93
  }, dig(item.children)) : null;
96
94
 
97
95
  if (item.split) {
@@ -160,7 +158,9 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (_a, ref) {
160
158
  disabledPortal: false,
161
159
  className: overlayClassName
162
160
  }
163
- })), dig(data)) : null));
161
+ }), {
162
+ size: size
163
+ }), dig(data)) : null));
164
164
  });
165
165
 
166
166
  if (env.__DEV__) {
@@ -168,10 +168,6 @@ if (env.__DEV__) {
168
168
  }
169
169
 
170
170
  var dropdownMenuPrefix = classname.getPrefixCls('dropdown-menu');
171
- /**
172
- * TODO: What is DropdownMenu
173
- */
174
-
175
171
  var DropdownMenu = /*#__PURE__*/React.forwardRef(function (_a, ref) {
176
172
  var _a$prefixCls2 = _a.prefixCls,
177
173
  prefixCls = _a$prefixCls2 === void 0 ? dropdownMenuPrefix : _a$prefixCls2,
@@ -179,9 +175,11 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (_a, ref) {
179
175
  parents = _a.parents,
180
176
  className = _a.className,
181
177
  children = _a.children,
182
- rest = tslib.__rest(_a, ["prefixCls", "role", "overlay", "parents", "className", "children"]);
178
+ _a$size2 = _a.size,
179
+ size = _a$size2 === void 0 ? 'lg' : _a$size2,
180
+ rest = tslib.__rest(_a, ["prefixCls", "role", "overlay", "parents", "className", "children", "size"]);
183
181
 
184
- var cls = classname.cx(prefixCls, className);
182
+ var cls = classname.cx(prefixCls, className, prefixCls + "--size-" + size);
185
183
  return /*#__PURE__*/React__default["default"].createElement(popper.Popper, Object.assign({}, overlay), /*#__PURE__*/React__default["default"].createElement("ul", Object.assign({
186
184
  ref: ref,
187
185
  className: cls
@@ -197,10 +195,6 @@ if (env.__DEV__) {
197
195
  }
198
196
 
199
197
  var dropdownMenuItemPrefix = classname.getPrefixCls('dropdown-menu-item');
200
- /**
201
- * TODO: What is DropdownMenuItem
202
- */
203
-
204
198
  var DropdownMenuItem = /*#__PURE__*/React.forwardRef(function (_a, ref) {
205
199
  var _a$prefixCls3 = _a.prefixCls,
206
200
  prefixCls = _a$prefixCls3 === void 0 ? dropdownMenuItemPrefix : _a$prefixCls3,
@@ -12,9 +12,9 @@
12
12
  Object.defineProperty(exports, '__esModule', {
13
13
  value: true
14
14
  });
15
- var css_248z = ".hi-v4-dropdown {display: inline-block; }.hi-v4-dropdown-menu {-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0;padding: 0;background-color: var(--hi-v4-color-static-white, #fff);border-radius: var(--hi-v4-border-radius-md, 4px);font-size: var(--hi-v4-text-size-md, 0.875rem);padding: var(--hi-v4-spacing-4, 8px);color: var(--hi-v4-color-gray-700, #1f2733);width: var(--hi-v4-dropdown-menu-width, 180px); }.hi-v4-dropdown-menu-item {-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0;padding: 0;list-style: none;margin: 0;box-sizing: border-box;overflow: visible;padding: var(--hi-v4-spacing-2, 4px) 0; }.hi-v4-dropdown-menu-item__link {color: var(--hi-v4-color-gray-700, #1f2733);width: 100%;text-decoration: none;-webkit-box-sizing: border-box;box-sizing: border-box; }.hi-v4-dropdown-menu-item__arrow {-webkit-transform: rotate(-90deg);transform: rotate(-90deg); }.hi-v4-dropdown-menu-item__trigger {-webkit-box-sizing: border-box;box-sizing: border-box;width: 100%;height: 100%;cursor: pointer;border-radius: var(--hi-v4-border-radius-md, 4px);padding: var(--hi-v4-spacing-4, 8px) var(--hi-v4-spacing-6, 12px);display: -webkit-box;display: -ms-flexbox;display: flex;-webkit-box-align: center;-ms-flex-align: center;align-items: center;-webkit-box-pack: justify;-ms-flex-pack: justify;justify-content: space-between; }.hi-v4-dropdown-menu-item:not(.hi-v4-dropdown-menu-item--disabled) > .hi-v4-dropdown-menu-item__trigger:hover {background-color: var(--hi-v4-color-gray-100, #f2f4f7); }.hi-v4-dropdown-menu-item--active:not(.hi-v4-dropdown-menu-item--disabled) > .hi-v4-dropdown-menu-item__trigger {background-color: var(--hi-v4-color-gray-100, #f2f4f7); }.hi-v4-dropdown-menu-item--disabled > .hi-v4-dropdown-menu-item__trigger {cursor: not-allowed;color: var(--hi-v4-color-gray-500, #929aa6); }.hi-v4-dropdown-divider {-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0;padding: 0;list-style: none;background-color: var(--hi-v4-color-gray-200, #ebedf0);width: 100%;height: 1px;margin: var(--hi-v4-spacing-4, 8px) 0; }";
15
+ var css_248z = ".hi-v4-dropdown {display: inline-block;}.hi-v4-dropdown-menu {-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0;padding: 0;background-color: var(--hi-v4-color-static-white, #fff);border-radius: var(--hi-v4-border-radius-md, 4px);font-size: var(--hi-v4-text-size-md, 0.875rem);padding: var(--hi-v4-spacing-4, 8px);color: var(--hi-v4-color-gray-700, #1f2733);width: var(--hi-v4-dropdown-menu-width, 180px);}.hi-v4-dropdown-menu-item {-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0;padding: 0;list-style: none;margin: 0;box-sizing: border-box;overflow: visible;}.hi-v4-dropdown-menu-item__link {color: var(--hi-v4-color-gray-700, #1f2733);width: 100%;text-decoration: none;-webkit-box-sizing: border-box;box-sizing: border-box;}.hi-v4-dropdown-menu-item__arrow {-webkit-transform: rotate(-90deg);transform: rotate(-90deg);}.hi-v4-dropdown-menu-item__trigger {-webkit-box-sizing: border-box;box-sizing: border-box;width: 100%;height: 100%;cursor: pointer;border-radius: var(--hi-v4-border-radius-md, 4px);display: -webkit-box;display: -ms-flexbox;display: flex;-webkit-box-align: center;-ms-flex-align: center;align-items: center;-webkit-box-pack: justify;-ms-flex-pack: justify;justify-content: space-between;}.hi-v4-dropdown-menu--size-lg .hi-v4-dropdown-menu-item__trigger {padding: var(--hi-v4-spacing-5, 10px) var(--hi-v4-spacing-5, 10px);}.hi-v4-dropdown-menu--size-md .hi-v4-dropdown-menu-item__trigger {padding: var(--hi-v4-spacing-4, 8px) var(--hi-v4-spacing-4, 8px);}.hi-v4-dropdown-menu--size-sm .hi-v4-dropdown-menu-item__trigger {padding: var(--hi-v4-spacing-3, 6px) var(--hi-v4-spacing-3, 6px);}.hi-v4-dropdown-menu-item:not(.hi-v4-dropdown-menu-item--disabled) > .hi-v4-dropdown-menu-item__trigger:hover {background-color: var(--hi-v4-color-gray-100, #f2f4f7);}.hi-v4-dropdown-menu-item--active:not(.hi-v4-dropdown-menu-item--disabled) > .hi-v4-dropdown-menu-item__trigger {background-color: var(--hi-v4-color-gray-100, #f2f4f7);}.hi-v4-dropdown-menu-item--disabled > .hi-v4-dropdown-menu-item__trigger {cursor: not-allowed;color: var(--hi-v4-color-gray-500, #929aa6);}.hi-v4-dropdown-divider {-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0;padding: 0;list-style: none;background-color: var(--hi-v4-color-gray-200, #ebedf0);width: 100%;height: 1px;margin: var(--hi-v4-spacing-4, 8px) 0;}";
16
16
 
17
- var __styleInject__ = require('inject-head-style')["default"];
17
+ var __styleInject__ = require('style-inject')["default"];
18
18
 
19
19
  __styleInject__(css_248z);
20
20
 
@@ -24,11 +24,6 @@ var _prefix = getPrefixCls(_role);
24
24
  var DEFAULT_DATA = [];
25
25
  /**
26
26
  * 下拉菜单
27
- *
28
- * TODO:
29
- * 1. 支持自定义icon
30
- * 2. 支持 titleRender
31
- * 3. 支持 onClick 阻止默认行为关闭
32
27
  */
33
28
 
34
29
  var Dropdown = /*#__PURE__*/forwardRef(function (_a, ref) {
@@ -46,7 +41,9 @@ var Dropdown = /*#__PURE__*/forwardRef(function (_a, ref) {
46
41
  _onClick = _a.onClick,
47
42
  onButtonClick = _a.onButtonClick,
48
43
  overlayClassName = _a.overlayClassName,
49
- rest = __rest(_a, ["prefixCls", "role", "className", "children", "data", "title", "type", "onClick", "onButtonClick", "overlayClassName"]);
44
+ _a$size = _a.size,
45
+ size = _a$size === void 0 ? 'lg' : _a$size,
46
+ rest = __rest(_a, ["prefixCls", "role", "className", "children", "data", "title", "type", "onClick", "onButtonClick", "overlayClassName", "size"]);
50
47
 
51
48
  var _b = useDropdown(rest),
52
49
  rootProps = _b.rootProps,
@@ -63,7 +60,8 @@ var Dropdown = /*#__PURE__*/forwardRef(function (_a, ref) {
63
60
  var menu = isArrayNonEmpty(item.children) ? /*#__PURE__*/React.createElement(DropdownMenu, {
64
61
  overlay: {
65
62
  gutterGap: 16
66
- }
63
+ },
64
+ size: size
67
65
  }, dig(item.children)) : null;
68
66
 
69
67
  if (item.split) {
@@ -132,7 +130,9 @@ var Dropdown = /*#__PURE__*/forwardRef(function (_a, ref) {
132
130
  disabledPortal: false,
133
131
  className: overlayClassName
134
132
  }
135
- })), dig(data)) : null));
133
+ }), {
134
+ size: size
135
+ }), dig(data)) : null));
136
136
  });
137
137
 
138
138
  if (__DEV__) {
@@ -140,10 +140,6 @@ if (__DEV__) {
140
140
  }
141
141
 
142
142
  var dropdownMenuPrefix = getPrefixCls('dropdown-menu');
143
- /**
144
- * TODO: What is DropdownMenu
145
- */
146
-
147
143
  var DropdownMenu = /*#__PURE__*/forwardRef(function (_a, ref) {
148
144
  var _a$prefixCls2 = _a.prefixCls,
149
145
  prefixCls = _a$prefixCls2 === void 0 ? dropdownMenuPrefix : _a$prefixCls2,
@@ -151,9 +147,11 @@ var DropdownMenu = /*#__PURE__*/forwardRef(function (_a, ref) {
151
147
  parents = _a.parents,
152
148
  className = _a.className,
153
149
  children = _a.children,
154
- rest = __rest(_a, ["prefixCls", "role", "overlay", "parents", "className", "children"]);
150
+ _a$size2 = _a.size,
151
+ size = _a$size2 === void 0 ? 'lg' : _a$size2,
152
+ rest = __rest(_a, ["prefixCls", "role", "overlay", "parents", "className", "children", "size"]);
155
153
 
156
- var cls = cx(prefixCls, className);
154
+ var cls = cx(prefixCls, className, prefixCls + "--size-" + size);
157
155
  return /*#__PURE__*/React.createElement(Popper, Object.assign({}, overlay), /*#__PURE__*/React.createElement("ul", Object.assign({
158
156
  ref: ref,
159
157
  className: cls
@@ -169,10 +167,6 @@ if (__DEV__) {
169
167
  }
170
168
 
171
169
  var dropdownMenuItemPrefix = getPrefixCls('dropdown-menu-item');
172
- /**
173
- * TODO: What is DropdownMenuItem
174
- */
175
-
176
170
  var DropdownMenuItem = /*#__PURE__*/forwardRef(function (_a, ref) {
177
171
  var _a$prefixCls3 = _a.prefixCls,
178
172
  prefixCls = _a$prefixCls3 === void 0 ? dropdownMenuItemPrefix : _a$prefixCls3,
@@ -7,8 +7,8 @@
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
9
  */
10
- import __styleInject__ from 'inject-head-style';
11
- var css_248z = ".hi-v4-dropdown {display: inline-block; }.hi-v4-dropdown-menu {-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0;padding: 0;background-color: var(--hi-v4-color-static-white, #fff);border-radius: var(--hi-v4-border-radius-md, 4px);font-size: var(--hi-v4-text-size-md, 0.875rem);padding: var(--hi-v4-spacing-4, 8px);color: var(--hi-v4-color-gray-700, #1f2733);width: var(--hi-v4-dropdown-menu-width, 180px); }.hi-v4-dropdown-menu-item {-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0;padding: 0;list-style: none;margin: 0;box-sizing: border-box;overflow: visible;padding: var(--hi-v4-spacing-2, 4px) 0; }.hi-v4-dropdown-menu-item__link {color: var(--hi-v4-color-gray-700, #1f2733);width: 100%;text-decoration: none;-webkit-box-sizing: border-box;box-sizing: border-box; }.hi-v4-dropdown-menu-item__arrow {-webkit-transform: rotate(-90deg);transform: rotate(-90deg); }.hi-v4-dropdown-menu-item__trigger {-webkit-box-sizing: border-box;box-sizing: border-box;width: 100%;height: 100%;cursor: pointer;border-radius: var(--hi-v4-border-radius-md, 4px);padding: var(--hi-v4-spacing-4, 8px) var(--hi-v4-spacing-6, 12px);display: -webkit-box;display: -ms-flexbox;display: flex;-webkit-box-align: center;-ms-flex-align: center;align-items: center;-webkit-box-pack: justify;-ms-flex-pack: justify;justify-content: space-between; }.hi-v4-dropdown-menu-item:not(.hi-v4-dropdown-menu-item--disabled) > .hi-v4-dropdown-menu-item__trigger:hover {background-color: var(--hi-v4-color-gray-100, #f2f4f7); }.hi-v4-dropdown-menu-item--active:not(.hi-v4-dropdown-menu-item--disabled) > .hi-v4-dropdown-menu-item__trigger {background-color: var(--hi-v4-color-gray-100, #f2f4f7); }.hi-v4-dropdown-menu-item--disabled > .hi-v4-dropdown-menu-item__trigger {cursor: not-allowed;color: var(--hi-v4-color-gray-500, #929aa6); }.hi-v4-dropdown-divider {-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0;padding: 0;list-style: none;background-color: var(--hi-v4-color-gray-200, #ebedf0);width: 100%;height: 1px;margin: var(--hi-v4-spacing-4, 8px) 0; }";
10
+ import __styleInject__ from 'style-inject';
11
+ var css_248z = ".hi-v4-dropdown {display: inline-block;}.hi-v4-dropdown-menu {-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0;padding: 0;background-color: var(--hi-v4-color-static-white, #fff);border-radius: var(--hi-v4-border-radius-md, 4px);font-size: var(--hi-v4-text-size-md, 0.875rem);padding: var(--hi-v4-spacing-4, 8px);color: var(--hi-v4-color-gray-700, #1f2733);width: var(--hi-v4-dropdown-menu-width, 180px);}.hi-v4-dropdown-menu-item {-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0;padding: 0;list-style: none;margin: 0;box-sizing: border-box;overflow: visible;}.hi-v4-dropdown-menu-item__link {color: var(--hi-v4-color-gray-700, #1f2733);width: 100%;text-decoration: none;-webkit-box-sizing: border-box;box-sizing: border-box;}.hi-v4-dropdown-menu-item__arrow {-webkit-transform: rotate(-90deg);transform: rotate(-90deg);}.hi-v4-dropdown-menu-item__trigger {-webkit-box-sizing: border-box;box-sizing: border-box;width: 100%;height: 100%;cursor: pointer;border-radius: var(--hi-v4-border-radius-md, 4px);display: -webkit-box;display: -ms-flexbox;display: flex;-webkit-box-align: center;-ms-flex-align: center;align-items: center;-webkit-box-pack: justify;-ms-flex-pack: justify;justify-content: space-between;}.hi-v4-dropdown-menu--size-lg .hi-v4-dropdown-menu-item__trigger {padding: var(--hi-v4-spacing-5, 10px) var(--hi-v4-spacing-5, 10px);}.hi-v4-dropdown-menu--size-md .hi-v4-dropdown-menu-item__trigger {padding: var(--hi-v4-spacing-4, 8px) var(--hi-v4-spacing-4, 8px);}.hi-v4-dropdown-menu--size-sm .hi-v4-dropdown-menu-item__trigger {padding: var(--hi-v4-spacing-3, 6px) var(--hi-v4-spacing-3, 6px);}.hi-v4-dropdown-menu-item:not(.hi-v4-dropdown-menu-item--disabled) > .hi-v4-dropdown-menu-item__trigger:hover {background-color: var(--hi-v4-color-gray-100, #f2f4f7);}.hi-v4-dropdown-menu-item--active:not(.hi-v4-dropdown-menu-item--disabled) > .hi-v4-dropdown-menu-item__trigger {background-color: var(--hi-v4-color-gray-100, #f2f4f7);}.hi-v4-dropdown-menu-item--disabled > .hi-v4-dropdown-menu-item__trigger {cursor: not-allowed;color: var(--hi-v4-color-gray-500, #929aa6);}.hi-v4-dropdown-divider {-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0;padding: 0;list-style: none;background-color: var(--hi-v4-color-gray-200, #ebedf0);width: 100%;height: 1px;margin: var(--hi-v4-spacing-4, 8px) 0;}";
12
12
 
13
13
  __styleInject__(css_248z);
14
14
 
@@ -1,15 +1,10 @@
1
1
  import React from 'react';
2
- import { HiBaseHTMLProps } from '@hi-ui/core';
2
+ import { HiBaseHTMLProps, HiBaseSizeEnum } from '@hi-ui/core';
3
3
  import { PopperOverlayProps } from '@hi-ui/popper';
4
4
  import { UseDropdownProps } from './use-dropdown';
5
5
  import { DropdownDataItem } from './types';
6
6
  /**
7
7
  * 下拉菜单
8
- *
9
- * TODO:
10
- * 1. 支持自定义icon
11
- * 2. 支持 titleRender
12
- * 3. 支持 onClick 阻止默认行为关闭
13
8
  */
14
9
  export declare const Dropdown: React.ForwardRefExoticComponent<DropdownProps & React.RefAttributes<HTMLDivElement | null>>;
15
10
  export interface DropdownProps extends Omit<HiBaseHTMLProps<'div'>, 'onClick'>, UseDropdownProps {
@@ -54,4 +49,8 @@ export interface DropdownProps extends Omit<HiBaseHTMLProps<'div'>, 'onClick'>,
54
49
  * 自定义控制 下拉 popper 行为
55
50
  */
56
51
  overlay?: PopperOverlayProps;
52
+ /**
53
+ * 设置大小
54
+ */
55
+ size?: HiBaseSizeEnum;
57
56
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hi-ui/dropdown",
3
- "version": "4.0.6",
3
+ "version": "4.1.0",
4
4
  "description": "A sub-package for @hi-ui/hiui.",
5
5
  "keywords": [],
6
6
  "author": "HiUI <mi-hiui@xiaomi.com>",
@@ -63,8 +63,7 @@
63
63
  },
64
64
  "devDependencies": {
65
65
  "@hi-ui/core": "^4.0.4",
66
- "@hi-ui/core-css": "^4.0.1",
67
- "@hi-ui/hi-build": "^4.0.1",
66
+ "@hi-ui/core-css": "^4.1.1",
68
67
  "react": "^17.0.1",
69
68
  "react-dom": "^17.0.1"
70
69
  }